[PHP] 中文大寫轉換器

最近在教同學寫PHP,期末作業出了我以前寫過的中文大寫轉換

寫參考解答的時候順便修正了一下以前沒處理的狀況如下

<?php

fscanf(STDIN, "%s\n", $input);

$number = ['零', '壹', '貳', '參', '肆', '伍', '陸', '柒', '捌', '玖'];
$unit = ['', '拾', '佰', '仟'];
$unit2 = ['', '萬', '億', '兆'];

$zeroed = false; // 是否出現零
$partedNonZero = false; // 是否出現非零數字

for ($char = strlen($input) - 1; $char >= 0; $char--)
{
	// 取得數字
	$digit = $input[strlen($input) - $char - 1];

	// 判斷數字是否為零
	if ($digit != 0)
	{
		// 顯示剛剛出現的零(如果有)
		if ($zeroed) {
			$zeroed = false;
			echo $number[0];
		}

		// 顯示非零數字和單位
		echo $number[$digit], $unit[$char % 4];
		// 標記有非零數字
		$partedNonZero = true;
	}
	else
	{
		// 標記有零
		$zeroed = true;
	}

	// 跨單位時,出現非零數字要顯示單位
	if ($partedNonZero && $char % 4 == 0) {
		echo $unit2[$char / 4];
		$zeroed = false;
		$partedNonZero = false;
	}
}

留言

粗體斜體刪除線連結引用圖片程式碼

注意:您的電子信箱將不會被公開,且網站連結不會被搜尋引擎採計

{124} {123} {122} {121} {120} {119} {118} {117} {116} {115} {114} {113} {112} {111} {100} {025} {024} {023} {022} {021} {020} {019} {018} {017} {016} {015} {014} {013} {012} {011} {010} {009} {008} {007} {006} {005} {004} {003} {002} {001}