• ベストアンサー

C言語で全角文字の扱いについて

全角を配列に格納するには2バイトを使いますよね。そこで気になることがあるのですが、以下のプログラムで一文字目(私)を表示するには、どうしたらいいのですか?これは間違っています。 教えて下さい。 #include <stdio.h> main(){ char array[100]={"私の名前はXXXです"}; printf("%s",array[0]); }

質問者が選んだベストアンサー

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.2

SHIFT-JISの場合ということで。 /* 一文字出力関数 */ void putchar1(char *s) {   putchar(*s);   if(issjis(*s))     putchar(*(s+1)); } のようにすればどうですか? issjis()は別途用意する必要がありますが。 (SHIFT-JISの第一バイトかどうかの判定関数です)

その他の回答 (1)

  • madman
  • ベストアンサー率24% (612/2465)
回答No.1

このままだと、エラーですよね。 printf("%c%c", array[0], array[1]); とするか、 #include <stdio.h> main(){ char array[100]={"私の名前はXXXです"}; char buff[3]; memcpy(buff, array, 2); buff[2]=0; printf("%s",buff); }

関連するQ&A