0

Win-1251 でエンコードされたテキストを処理する必要があります (8 ビット エンコード、キリル文字には 128..255 の一部を使用)。私が知る限り、C は 7 ビット ASCII を念頭に置いて作成されており、127 を超えるシングルバイト文字は明示的にサポートされていません。いくつか質問があります。

  • このテキストのより適切なタイプは次のどれですか:char[]またはunsigned char[]?
  • unsigned char[]組み込み関数 ( strlen, )を使用するとstrcmp、コンパイラは への暗黙のキャストについて警告しchar*ます。そのようなキャストは何かを壊すことができますか? unsigned char文字列を明示的にサポートするには、一部の関数を再実装する必要がありますか?
4

1 に答える 1

-1

C にはsigned charunsigned char、およびcharの 3 つの異なる文字型があり、符号付きまたは符号なしのいずれかです。char文字列の場合は、すべての組み込み関数でうまく機能するため、単に使用する必要があります。それらはすべて、127 より大きい数値を持つ文字でも正常に機能しますchar

于 2020-10-21T22:17:20.183 に答える