char* str[]の任意の一文字を表示させたいのです。
1バイト文字は表示することができるのですが、2バイト文字(日本語)が表示を出来ずに困っています。
どのようにすれば表示できるようになるかご助言お願いします。
char* str[]の表示
-
かずま
Re: char* str[]の表示
Ubuntu で 環境変数 LANG=jp_JP.UTF-8 では、「あ」は3バイトです。ちる さんが書きました: 2バイトだから二つ分表示させればよかったのですね。
#include <stdio.h>
int main(void)
{
char *str[] = {
"ありがとう",
"감사",
"Thank you",
"谢谢",
"спасибо",
"ขอบคุณ",
};
int i;
for (i = 0; i < sizeof(str)/sizeof(*str); i++)
printf(" [%c%c]", str[i][0], str[i][1]);
printf("\n");
for (i = 0; i < sizeof(str)/sizeof(*str); i++)
printf(" [%c%c%c]", str[i][0], str[i][1], str[i][2]);
printf("\n");
return 0;
}
Re: char* str[]の表示
LANG環境変数とは関係なくて、ソースファイルをUTF-8で保存すれば3バイトですけど、Shift_JISで保存すると2バイトですよ。かずま さんが書きました:Ubuntu で 環境変数 LANG=jp_JP.UTF-8 では、「あ」は3バイトです。
Shift_JISの「あ」の2バイトをLANG=jp_JP.UTF-8環境で表示すると文字化けしますけど。