いろいろ備忘録

雑記です。

漢字のcharを理解する

int main(int argc, char **argv) {
char c[] = "大";

char *word = "大同小異";

//sizeofで変数のバイト数を求める
//終端文字が入るので1引く
int byteLen = sizeof( c ) - 1;

//char型には1バイト入る。つまり
//UTF-8の場合、漢字は3バイトなので3
//S_JISの場合、漢字は2バイトなので2が表示される
printf("漢字一文字のバイト数は%d \n",byteLen);


int y;
for (y = 0; y < byteLen; y++) {
//先頭アドレスから1バイトずつ出力する
//繰り返してやっと一つの文字になる
//つまり途中でbreakすると文字化けする
printf("%c", *(word + y));
}
printf("\n");
return 0;
}