[1810] Re:char hoge = 'A';
投稿者:774RR
2012/03/14 18:49:51
この書き方とは? getchar()==(unsigned char)('a') っすか?
俺ならここまで厳密に書くことは絶対にしない(お仕事コードでも)と思うですよ。
俺が本を書くとしたら unsigned char の話には触れないです。
EOF は一般の意味での [文字] ではないため int が必要であるとは書きます。
int c=getchar();
switch (c) {
case EOF:
case 'a':
}
のように文字コードに関しては単純に 'a' と書くでしょう。んで、脚注にでも
(†1) C はもともと英語圏で発展した言語なので、英語のアルファベットにない文字:
ドイツ語のウムラウト文字とかエスツェットとか
フランス語のアクサングラーブ文字とか
日本語の各種ひらがなカタカナ漢字とか
は、C の初期からある標準関数ではうまく扱えないことがある。
たとえばこの例で case 'ア': と書いても動かない処理系のほうが多い。
(†2) そもそも日本語や中国語などの文字は多バイトで表現するので、
取り扱い方法がまったく変更になることが通例である。
とでもしておきますかね。もしかしたら脚注3で
(†2) 標準関数で無理なく問題なく扱える文字の集合を基本実行文字集合と呼ぶ。
とするかもしれないです。