C言語関係掲示板

過去ログ

No.401.漢字のASCIIコード

[戻る] [ホームページ]
No.2779

漢字のASCIIコード
投稿者---なべ(2002/09/25 17:35:28)


漢字が入力されたら(例えば"勝")、そのASCIIコードを求めるには
どうすればいいのでしょうか。

No.2791

Re:漢字のASCIIコード
投稿者---ともじ(2002/09/26 16:26:50)


こんにちは。

>漢字が入力されたら(例えば"勝")、そのASCIIコードを求めるには
>どうすればいいのでしょうか。

漢字の場合には1文字2バイトですので、2回読込を行うことになります。
Windowsの環境ではシフトJISというコードを使っていますので、
それを表示させるには、以下のように行います。

これは、読み込んだ文字の1バイト目が漢字コードの1バイト目なら
次を読んでコードを出力させています。

#include <stdio.h>

#define iskanji(c) (0x81 <= ((c) & 0xff) && ((c) & 0xff) <= 0x9f || \
                    0xe0 <= ((c) & 0xff) && ((c) & 0xff) <= 0xfc)

int main(void)
{
        int c1, c2;

        while ( (c1 = getchar()) != EOF) {
                if (iskanji(c1)) {
                        c2 = getchar();
                        putchar(c1);
                        putchar(c2);
                        printf(":%x%x\n", c1, c2);
                }
                else {
                        putchar(c1);
                }
        }
        
        return (0);
}

なお、処理系でiskanjiが用意されていればそちらを使ってください。


No.2796

漢字のASCIIコード
投稿者---なべ(2002/09/27 14:27:10)


TO:ともじ殿

ありがとうございました。参考になりました。