英大文字、小文字の変換について

解決済みの質問

英大文字、小文字の変換について

文字コード体系によっては、

'0'、'1'、・・・、'9'の値は一つづつ増えていくが、
'a'、'b'、・・・、'z'の値が一つづつ増える保証はない。

と聞きました。

英文字を大文字や小文字に変換する関数が成立するためには、少なくとも大文字と小文字の文字コードの整数値に規則性が必要だと思います。

ということは、文字コード体系が異なると、英文字a,b,c・・・は、一つづつ増える保証は無いが、大文字と小文字簡には共通する規則が保証されているということでしょうか?

ご存知の方お願いいたします。

投稿日時 - 2003-05-10 07:52:48

連想キーワード:

QNo.543654

暇なときに回答ください

質問者が選んだベストアンサー

> '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

ANo.2

1人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

ANo.3

>と言う事は、toupperを使用したプログラムは、常に作動が保証されている訳ではない。という事でしょうか?

おそらくtoupperはASCIIコード限定だと思います。

参考URL:http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/vclrfalphabeticalfunctionr

投稿日時 - 2003-05-10 10:33:55

お礼

回答ありがとうございました。

投稿日時 - 2003-05-10 18:01:42

ANo.1

一般的な文字コードsjis、unicode、EUCは1ずつ増えていくと思いますが
半角全角ともに。

unicodeなら半角全角とも固定2バイト
sjis、eucだと半角1バイト、全角2バイトということでしょうか?

投稿日時 - 2003-05-10 08:07:01

お礼

回答ありがとうございます。

質問が回りくどく、分かりにくかったと思いますが、知りたいのは、

大文字と小文字の差は、全てのコード体系にて32と決まっているか?

と言う事です。

再度、ご存知でしたらお願いします。

投稿日時 - 2003-05-10 08:28:46

あわせてチェックしたい
  • サンスクリット語の大文字・小文字 ...
  • ファイル名の大文字と小文字 ...
  • 大文字→小文字 ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら