• ベストアンサー

文字列を入力・表示

文字列を入力して表示したいのですができません。誤っていないと思うのですが・・・。何が間違っているのでしょうか? #include<stdio.h> void main (void) { char namae; printf("お名前を登録します。お名前を入力して下さい。\n"); scanf("%s",&namae); printf("お名前は%sですね。\n",namae); }

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

  • ベストアンサー
回答No.3

scanf 関数で文字列を取得するには、文字列(char型変数のアドレス)を指定する必要があります。 char namae; scanf("%s", &namae); ですと、確かに &namae は char型変数のアドレスですが、文字列を入れるには不十分です。 この場合、 char namae[32]; の様に文字(char型)の配列変数を定義する必要があります。 namae は char型変数のアドレスなので、 scanf("%s", namae); とすれば、namae変数に文字列を取得する事ができます。

参考URL:
http://www.kumei.ne.jp/c_lang/intro/no_06.htm

その他の回答 (2)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

こんにちは char namae; これでは、1文字分しか入れられません。 char namae[256]; にでもして見てください。

  • kajyukun
  • ベストアンサー率18% (157/842)
回答No.1

%sってありましたっけ? 16進法だったような。

kazu2021
質問者

お礼

%sは文字列だと思うのですが・・・。ちなみに%cが文字(1文字)だと思うのですが・・・。

関連するQ&A