2007年8月30日木曜日

全角スペースを判断(shift-jis)

全角スペースを取り除きたくて
Shift-Jisの文字コードについて調べた。

・1バイト目が0x81~0x9F、0xE0~0xFFの場合がマルチバイト(全角)文字扱いとなる。
・全角スペースの文字コードは 0x81,0x40 (カンマで区切って1バイトづつ表記)

C言語でちょこっと書いてみた。
------

for (int i = 0; i <= strlen(str); ++i) {

// shift-jis 全角文字判定
if (((char)0x81 <= str[i] && str[i] <= (char)0x9F) ||
((char)0xE0 <= str[i] && str[i] <= (char)0xFF)) {

if ((str[i] == (char)0x81) && (str[i + 1] == (char)0x40)) {
// 全角スペースの時の処理
} else {
// 全角スペース以外の全角文字の処理
}
++i; // 全角文字なので1つ進めておく
}
}
------


forの条件式内で関数呼び出すのはよろしくないけど…
直感的に解りやすくするためです。
.

0 件のコメント:

ラベル