No.4ベストアンサー
- 回答日時:
私より前の回答者の方の回答を見れば分かると思いますが、
C言語では、漢字であろうと、半角英数であろうと、
数値で表現されています。
半角英数字などの1バイト文字は、0~255までの数値で
表現が可能でC言語のコード上に'A'とすると数値として扱われます。
しかし、複数バイト文字(マルチバイト文字)、
漢字などは2バイト(大雑把に言えば2文字)を
使って表される為C言語上での扱いは文字列として扱う事になります。
(そういう風にみなしてプログラムすると言う事であって
C言語の規格で明確に決まっているわけではありません。
バラバラに扱ってもそれは文字が崩れるだけの話です。)
以下のサンプルはマルチバイト文字のコードを
表示する簡単なサンプルです。
/*
* VC++6.0 WinXP Pro SP2
*/
#include <stdio.h>
int main( int argc, char** argv )
{
/* 文字コードの表現範囲は符号なしのため unsigned */
unsigned char c1,c2;
printf( "Alt+半角/全角で全角入力\n" );
scanf("%c%c",&c1,&c2);
printf("%02X %02X\n", c1, c2);
return 0;
}
No.3
- 回答日時:
Oh-Orangeさん、euc(euc-jp)は通常はそういう表現をしません。
2バイトで構成される文字の2バイト目も最上位ビットを立てます。
それから一文字が3バイトで構成されることもあります(JIS X 0212)。
半角カナは 0x8eを先行させて2バイトで構成されます。
文字コードの話
http://euc.jp/i18n/charcode.ja.html
No.2
- 回答日時:
★文字変換の処理を行いたいのですか?
・JISコード漢字は 0x2121~0x7E7E です。
1バイト文字が 0x21~0x7E の範囲。
2バイト文字も 0x21~0x7E の範囲。
・EUCコード漢字は 0xA121~0xAE7E です。半角カタカナも含めるとちょっと複雑になります。
1バイト文字が 0xA1~0xAE の範囲。
2バイト文字が 0x21~0x7E の範囲。
・シフトJISコード漢字は 0x8140~0xFCFC です。
1バイト文字が 0x81~0x9F、0xE0~0xFC の範囲。
2バイト文字が 0x40~0xFC の範囲、ただし 0x7F は除外。
・シフトJISコードの場合は次のようにしてコード化できます。
『あ』という文字は
1バイト目が 0x82
2バイト目は 0xA0
です。よって 0x82A0 が『あ』の文字コードになります。
下にそのサンプルを載せます。
サンプル:
char moji[] = "あ";
int code;
これが文字コードの計算(処理)
↓
code = (moji[0] << 8 | moji[1]);
printf( "『%s』の文字コードは 0x%04X です。\n", moji, code );
No.1
- 回答日時:
この回答へのお礼
お礼日時:2007/06/13 02:48
早速のお返事ありがとうございます。
私は最近プログラミングを始めたばかりのせいか、ASCIIコードはCのものなんだなぁと思っていました。
もっと勉強します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- その他(Microsoft Office) Microsoft IME 一発で変換できない言葉がある 3 2022/07/19 19:29
- C言語・C++・C# C言語について質問です。 以下のような結果を出すためにはどのようなコードが良いですか?サンプルコード 3 2022/11/01 16:19
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- 英語 アルファベット順の4文字以上の英単語 10 2022/07/30 22:42
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
char str[256]の256の意味は?
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
バイナリとBCDコード
-
ワイド文字のバイト数が取得で...
-
「1TB」のHDDに日本語は何字入...
-
エクセルシート名の制限を変更...
-
COBOLのCOMP形式について
-
varchar(M)のMは文字数ですかバ...
-
バイト境界とは
-
UCS-2の一覧表が欲しい
-
ビットスワップとバイトスワッ...
-
SQLで1バイト、2バイト混在...
-
ピクセル,dpiから容量(バイト...
-
テキストBOXの入力制限について
-
sedコマンドで全ての2バイト文...
-
VBSでテキストファイルの文字列...
-
vb6 バイトオーダエンディアン...
-
この関数はどのプログラミング...
-
GetWindowTextでアドレスバーか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
エクセルシート名の制限を変更...
-
COBOLのCOMP形式について
-
char str[256]の256の意味は?
-
バイナリとBCDコード
-
「1TB」のHDDに日本語は何字入...
-
Javaで日本語1文字のバイト数
-
バイト列とバイナリ列の違いが...
-
SQLで1バイト、2バイト混在...
-
ピクセル,dpiから容量(バイト...
-
C++ Builderで文字列をバイトに...
-
64bit対応
-
ワイド文字のバイト数が取得で...
-
UCS-2の一覧表が欲しい
-
3バイト文字(UTF-8)をprintfで...
-
VBAでShift-JISのURLエンコード
-
機種依存文字をチェックしたい。
-
ビットスワップとバイトスワッ...
-
VBSでテキストファイルの文字列...
おすすめ情報