こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

文字列で条件分岐 if swtich

C言語でifやswitch文の条件式でキーボード入力からの複数文字列(char型)に対して条件分岐をしたいのですが、どなたか具体例を教えていただけないでしょうか?またscanfでキーボード入力を読み込む場合、Enterを押さないと実行されませんが、Enterを押さないでもいい関数や方法があれば教えて下さい。宜しくお願いします。

投稿日時 - 2007-10-19 17:49:43

QNo.3443307

困ってます

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

>複数文字列(char型)に対して条件分岐をしたいのですが、

char buf[10];
scanf("%s", buf);
if ( buf == "hello" ) { ... }

みたいなコトがしたいのでしょうか?

if ( strcmp(buf, "hello") == 0 ) { ... }

とかで我慢して下さい。

投稿日時 - 2007-10-19 22:15:57

お礼

まさにこれです!ありがとうございます!

投稿日時 - 2007-10-20 00:24:22

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

★アドバイス
>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

投稿日時 - 2007-10-19 21:08:40

お礼

ご丁寧にありがとうございます。Unixなのでちょっと頑張ってみます。

投稿日時 - 2007-10-21 04:28:32

あなたにオススメの質問