0

私はStephenPrataのCPrimerPlusからCを勉強しています。これが第11章からの1つの質問です。

最大10個の文字列またはEOFのいずれか早い方を読み取るプログラムを作成します。文字列の元のリストを印刷する、ASCII照合シーケンスで文字列を印刷する、長さの大きい順に文字列を印刷する、文字列の最初の単語の長さ順に文字列を印刷する、5つの選択肢があるメニューをユーザーに提供します。 、および終了します。ユーザーが終了要求を入力するまで、メニューをリサイクルします。もちろん、プログラムは実際に約束されたタスクを実行する必要があります

「文字列をASCII照合シーケンスで出力する」というビットを除いて、問題は理解しています。どういう意味ですか?ASCII照合シーケンスのように文字の順序を変更する必要があるということですか?

4

4 に答える 4

1

照合とは、文字列の「論理的な」順序付けを意味します。"C" ロケールの場合、これは ASCII コードによるソート ( を使用strcmp()) と同じです。

ただし、照合はロケールに依存します。

strcmp()たとえば、ISO 8859-1 エンコーディングと DE ロケールでは、並べ替えの場合のように、文字「ü」(0xfc) が「z」(0x7a) の後に/リストの最後にあるべきではありませんが、 「ue」(0x75 0x65)と同等のソート...

また、既存のすべてのロケールに関するすべての事実を知ることはおそらくできないため、標準ライブラリにはstrcoll()strxfrm()wcscoll()wcsxfrm()および のLC_COLLATEオプションが用意さsetlocale()れており、ロケール固有の処理が行われます。

国際化の世界へようこそ。;-) 幸運なことに、この質問は「ASCII 照合」を明示的に求めています。つまり、strcmp()...

于 2013-01-11T10:40:47.843 に答える
0

読み取った文字列を単純に並べ替え、文字のASCII値に応じて並べ替えるという意味だと思います。

したがって、 と の 2 つの文字列を入力する"aa""aA"、ソート後の順序は と に"aA"なり"aa"ます。この順序は、 の ASCII 値が'a'の ASCII 値よりも大きいためです'A'

于 2013-01-11T10:28:03.263 に答える
0

照合とは、定義された順序付けを意味します。タスクは、入力文字列を ASCII 順序で、つまり標準の「並べ替え」コマンドとして並べ替えることであり、各文字列の文字の順序を変更することではありません。言葉遣いはより明確になる可能性があります。他のタスクに基づく意図。

于 2013-01-11T10:28:45.290 に答える
0

Google はあなたの友達です:

ascii 照合順序
Web 定義 ASCII チャートで文字が定義される順序。(付録 B を参照)。

そのため、文字コード / char 要素の値で文字列を並べ替える必要があります。

于 2013-01-11T10:29:12.863 に答える