• 締切済み

このプログラムは「こんにちは」と打つと「こんにちは、元気ですか」と返答

このプログラムは「こんにちは」と打つと「こんにちは、元気ですか」と返答するプログラムです このプログラムを改良して「こんにちは」と打つと「こんにちは、元気ですか」と言うようなキーワードを打つ決められた回答をするようなものを増やしていきたいのですが、どのように改良すればよいでしょうか? 例えば 「寒いですね」といれると「冬だからね」となるように #include <stdio.h> #include <string.h> int reply(const char *s) { const char *reply_s[] = {"こんにちは 元気ですか?", "バイバイ", "ふ~ん?"}; if(strstr(s, "こんにちは")) puts(reply_s[0]); else if(strstr(s, "さようなら")){ puts(reply_s[1]); return 0; } else puts(reply_s[2]); return 1; } int main(void) { char s[128]; do{ char *p; fgets(s, sizeof s, stdin); if(p = strchr(s, '\n')) *p = '\0'; }while(reply(s)); return 0; }

みんなの回答

回答No.2

「人工無能」とか「人工痴能」とかでネット検索すると、質問にあるような「学習型簡易自動応答プログラム」についての情報やソースコードを見付ける事が出来ます。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

私だったら、こんな風にします。 1)質問の文字列とそれに対応する答えの文字列を   メンバーとする構造体を定義する。 2)上記構造体の配列を定義する。   例:   配列[0]:{ "こんにちは", "こんにちは 元気ですか?" }   配列[1]:{ "寒いですね", "冬だからね" }   配列[2]:{ "バイバイ", "さようなら" } 3)プログラム本体では、入力した文字列をキーとして   上記構造体配列の質問部分を検索する。 4)検索にヒットすれば、その質問に対応する答えの部分を   出力する。

関連するQ&A