※ ChatGPTを利用し、要約された質問です(原文:漢字英数字混在のANSI文字列のデェジット分解法?)
漢字英数字混在のANSI文字列のデェジット分解法とは?
このQ&Aのポイント
漢字英数字混在のANSI文字列をディジット(数字)に分解する方法について説明します。
漢字のANSI文字列は2バイト構成であり、その2バイトの先頭digit、2番目のdigit、3番目のdigit、最後のdigitを順次取り出します。
しかし、もし文字列の中に1バイト文字の英数字が含まれていた場合にはどうなるのでしょうか?漢字コードのdigit分解についても考慮が必要です。
漢字英数字混在のANSI文字列のデェジット分解法?
lpStringに漢字のANSI文字列が入っています
漢字ですので2バイト構成になっています
その2バイトの先頭digit、2番目のdigit、3番目のdigit、最後のdigitを順次取り出します
for (int i = 0; i<strlen(lpString); i++)
{
unsigned int TopDigit = lpString[i];
TopDigit = TopDigit >> 12;
TopDigit = TopDigit & 0x000f;
unsigned int SecondDigit = lpString[i];
TopDigit = TopDigit >> 8;
SecondDigit = SecondDigit & 0x000f;
unsigned int ThirdDigit = lpString[i];
ThirdDigit = ThirdDigit >> 4;
ThirdDigit = ThirdDigit & 0x000f;
unsigned int LastDigit = lpString[i];
LastDigit = LastDigit & 0x000f;
以下の処理は省略
}
i<strlen(lpString)により文字列中の全文字をdigitに分解しております
ここでハテ? なんです
もし文字列の中に1バイト文字の英数字が含まれていたらどうなりますか?
漢字コードのdigit分解もこれで良いのでしょうか?
int WORD = lpString[i] は漢字コードの時は2バイト、英数字の時は下バイトに1バイトが入るのでしょうか?
我ながらANSIコードの特性が分かっていないと思っています
漢字英数字混在の文字列のデェジット分解法をご教授願います
お礼
ありがとうございます 寝ぼけておりました 『漢字コードはまったくなんの関係もありません』の一言で気が付きました お世話様でした