• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ポインタを用いた月の名前の表示)

ポインタを用いた月の名前の表示

このQ&Aのポイント
  • ポインタを使って入力された数字に対応した月の名前を表示するプログラムを組んでいるのですが、表示が月の名前の初めの文字しか表示されません。
  • 初期化した時点で例えばmonth_name[0]には先頭の文字Jのアドレスしか入っていないためだと言うのは調べてわかりました。
  • どうやって全て(1月ならJanuary)表示できるのかがわかりません。

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

  • ベストアンサー
  • ryopis
  • ベストアンサー率20% (49/238)
回答No.1

変数宣言で char y; となっていることから、yは1文字分のサイズしかありません。 char *y; に変更した上で、 y=month_name(k); printf("%s\n",y); とするとどうでしょう。 %cは1文字、%sは文字列の表示です。

roger_
質問者

お礼

回答ありがとうございます。さっそくやってみたらできました。main関数の方に問題があったんですね^^;

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.2

> month_name[0]には先頭の文字Jのアドレスしか入っていない ちょっと違うのではないかな? "January" という文字列リテラルの先頭文字のアドレスが入っている。 だから、#1さんの回答のように修正すると、 1 を入力すると January という結果を得る。

関連するQ&A