- ベストアンサー
文字列で条件分岐 if swtich
C言語でifやswitch文の条件式でキーボード入力からの複数文字列(char型)に対して条件分岐をしたいのですが、どなたか具体例を教えていただけないでしょうか?またscanfでキーボード入力を読み込む場合、Enterを押さないと実行されませんが、Enterを押さないでもいい関数や方法があれば教えて下さい。宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>複数文字列(char型)に対して条件分岐をしたいのですが、 char buf[10]; scanf("%s", buf); if ( buf == "hello" ) { ... } みたいなコトがしたいのでしょうか? if ( strcmp(buf, "hello") == 0 ) { ... } とかで我慢して下さい。
その他の回答 (1)
- Oh-Orange
- ベストアンサー率63% (854/1345)
★アドバイス >C言語でifやswitch文の条件式でキーボード入力からの複数文字列(char型)に >対して条件分岐をしたいのですが、 >どなたか具体例を教えていただけないでしょうか? ↑ ちょっと意味が分かりません。 何を質問しているの? >またscanfでキーボード入力を読み込む場合、 >Enterを押さないと実行されませんが、 >Enterを押さないでもいい関数や方法があれば教えて下さい。 ↑ Windows 環境では conio.h で getch、getche という関数が用意されています。 この関数は getchar 関数と同じく1文字を取得します。 でも Enter キーを押さずに1文字入力されるとそく呼び出し側に制御を戻します。 これを使って文字列の入力ルーチンを構成して下さい。 そうすれば scanf で Enter キーを押さなくてもキーボード入力を1文字ずつ 読み込むことが可能です。 ・Unix 系の環境では conio.h がないため getch、getche 関数を利用できません。 同等の仕組みをご自分で作り上げて下さい。 Unix 系にはあまり詳しくありませんが実現可能なことだけは知っています。 ネット検索すればサンプルなどが見つかると思います。 ちょっと『unix getch』キーワードで検索してみたら次の1行を見つけました。 >Unix/Linuxには、cursesライブラリがありこの中の機能にgetch()などがあります。ただあまり好まれません。;_; ↑ 使えるみたい。 ・以上。参考に。
- 参考URL:
- http://i2lab.net/xp/fwki/index.cgi?page=%A5%AD%A1%BC%A5%DC%A1%BC%A5%C9%A4%AB%A4%E9%A4%CE%C6%FE%CE%CF
お礼
ご丁寧にありがとうございます。Unixなのでちょっと頑張ってみます。
お礼
まさにこれです!ありがとうございます!