解決済みの質問
文字コード体系によっては、
'0'、'1'、・・・、'9'の値は一つづつ増えていくが、
'a'、'b'、・・・、'z'の値が一つづつ増える保証はない。
と聞きました。
英文字を大文字や小文字に変換する関数が成立するためには、少なくとも大文字と小文字の文字コードの整数値に規則性が必要だと思います。
ということは、文字コード体系が異なると、英文字a,b,c・・・は、一つづつ増える保証は無いが、大文字と小文字簡には共通する規則が保証されているということでしょうか?
ご存知の方お願いいたします。
投稿日時 - 2003-05-10 07:52:48
> '0'、'1'、・・・、'9'の値は一つづつ増えていくが、
'a'、'b'、・・・、'z'の値が一つづつ増える保証はない。
この話では、よくEBCDICが例にあがります。参考URLのソフトで確認すると、アルファベットの並びが連続していない事がわかると思います。
>英文字を大文字や小文字に変換する関数が成立するためには、少なくとも大文字と小文字の文字コードの整数値に規則性が必要だと思います。
大文字と小文字の対応をテーブルとして持っていれば変換は可能です。
>文字コード体系が異なると、英文字a,b,c・・・は、一つづつ増える保証は無いが、大文字と小文字簡には共通する規則が保証されているということでしょうか?
英語版のEBCDICでは0x40だけずれているようですが、日本語では違うようです。というわけで、一般には保証はされていません。
参考URL:http://www.pleasuresky.co.jp/ebcdic.php3
投稿日時 - 2003-05-10 08:42:45
お礼
回答ありがとうございます。
大変良く分かりました。
ここからが本当に知りたいことなのです。質問におかしな記述があるかもしれませんがお許しください。
わたしが使用しているVC++6.0において、toupperという関数が有ります。この関数自体C言語で書かれています。
>英語版のEBCDICでは0x40だけずれているようですが、日
>本語では違うようです。というわけで、一般には保証は
>されていません
と言う事は、toupperを使用したプログラムは、常に作動が保証されている訳ではない。という事でしょうか?
投稿日時 - 2003-05-10 09:11:57
1人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(2件中 1~2件目)
>と言う事は、toupperを使用したプログラムは、常に作動が保証されている訳ではない。という事でしょうか?
おそらくtoupperはASCIIコード限定だと思います。
投稿日時 - 2003-05-10 10:33:55
お礼
回答ありがとうございました。
投稿日時 - 2003-05-10 18:01:42
OKWaveのオススメ
おすすめリンク