dポイントプレゼントキャンペーン実施中!

全角を配列に格納するには2バイトを使いますよね。そこで気になることがあるのですが、以下のプログラムで一文字目(私)を表示するには、どうしたらいいのですか?これは間違っています。
教えて下さい。

#include <stdio.h>
main(){
char array[100]={"私の名前はXXXです"};
printf("%s",array[0]);
}

A 回答 (2件)

SHIFT-JISの場合ということで。



/* 一文字出力関数 */
void putchar1(char *s)
{
  putchar(*s);
  if(issjis(*s))
    putchar(*(s+1));
}
のようにすればどうですか?

issjis()は別途用意する必要がありますが。
(SHIFT-JISの第一バイトかどうかの判定関数です)
    • good
    • 0

このままだと、エラーですよね。



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);
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!