• ベストアンサー

入力された物に対して文字を出す

Linux用のプログラムをC言語で作っていますが、たとえばコンソールから「neko」と入力されたら「nyaa」と表示し、「inu」と入力されたら「wan」、「1」と入力されたら「saru」...といったように入力されたものにたいして決まった文字を表示するにはどうしたらいいのでしょうか?

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

  • ベストアンサー
noname#30727
noname#30727
回答No.1

入力された文字列と予め用意した文字列を strcmp などで比較していくことになると思います。 以下サンプルです。 #include <stdio.h> #include <string.h> typedef struct { const char *key; const char *str; } dict; int main() { static dict table[] = { { "neko", "nyaa" }, { "inu", "wan" }, { "1", "saru" }, { NULL, NULL } /* テーブルの終端を意味する */ }; char buff[256]; dict *p; while (gets(buff)) { for (p = table; p->key; p++) { if (strcmp(buff, p->key) == 0) { break; } } if (p->key) { printf("%s\n", p->str); } else { printf("入力されたキーは定義されていません\n"); } } return 0; }

nikeneko
質問者

お礼

ご回答ありがとうござしました。いまコンパイラのインストールしてあるマシンが故障中なので直り次第やってみたいと思います。おりがとうございました。

関連するQ&A

専門家に質問してみよう