(c言語)日本語の%cによる表記
macで日本語を%cを使って躓いたことの備忘録です。。
日本語は英語とは異なり、マルチバイトを要求します。
そのため、
str[]="あいう"; printf("%c%c",str[0],str[1]);
他のサイトでよく見かける書き方。
しかし、macで実行すると、うまく表示できない。
そこでbyteを確認してみると、
int main(){ char str_1[]="あ"; char str_2[]="い"; char str_3[]="う"; printf("あ[%d],い[%d],う[%d]",sizeof(str_1),sizeof(str_2),sizeof(str_3)); return 0; }
結果
あ[4],い[4],う[4]
??? 4byte??2byteじゃないの?
てか、そしたら合計12?
int main(){ char str[]="あいう"; printf("あいう[%d]",sizeof(str)); return 0; }
結果
あいう[10]
あ、str_1,str_2,str_3の終わりに終端文字(1byte)があるんだった! つまり、ひらがなは3byte?
int main(){ char str[]="あいう"; printf("%c%c%c",str[0],str[1],str[2]); return 0; }
結果
あ
うまくいきました!