プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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;
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/10/02 21:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!