質問: ### 前提・実現したいこと 前回の質問同様様々なC言語コマンド理解のプログラム作成です。 ### 発生している問題・エラーメッセージ ``` 「64行目」で記述エラーを発見しました。 「constant expression」を付け忘れています。 以下のソースコードの「case "午前":」が64行目にあたります。 ``` ### 該当のソースコード ``` #include void if_test(void); void switch_test(void); int main(){ int imp; printf("C言語プログラミングテストです。\nテスト番号を入力して下さい > "); scanf("%d",&imp); switch(imp){ case 1: if_test(); break; case 2: switch_test(); break; default: printf("そのテスト番号は存在しません。\n\n"); main(); break; } return 0; } ~中略~ void switch_test(){ char str[101]; printf("switch文制御テストを実施します。\n\n問1:今は午前?午後?"); gets(str); switch(str){ case "午前"://64行目、エラー箇所 printf("今ブラジルは午後です。"); break; case "午後": printf("今ブラジルは午前です。"); break; default: printf("指示されたことを入力しなさい。"); break; } } ``` ### 試したこと 調べてみましたが分かりませんでした。 ### 補足情報(言語/FW/ツール等のバージョンなど) C言語、ツールはEasyIDEC Ver. 0.0.6.0です。
回答: C言語ではswitch - case 文で文字列は扱えません。 if - elseif でひとつひとつstrcomp()で比較してください。