要求使用函数、字符串和指针(也可使用结构体)开发一个简单的人机对话系统
时间: 2024-03-07 21:49:59 浏览: 16
好的,我可以为您提供一个简单的人机对话系统,使用函数、字符串和指针来实现。以下是一个基本的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_INPUT_LENGTH 100
// 用于匹配用户输入和回复的结构体
struct chatbot {
char *input;
char *output;
};
// 聊天机器人的回复集合
struct chatbot chatbot_responses[] = {
{"你好", "你好,有什么我可以帮到您的吗?"},
{"你叫什么名字", "我是一名聊天机器人。"},
{"再见", "下次再见!"},
{"", "抱歉,我不太明白你的意思。"}
};
// 查找匹配的回复
char *get_response(char *input) {
for (int i = 0; i < sizeof(chatbot_responses) / sizeof(struct chatbot); i++) {
if (strcmp(chatbot_responses[i].input, input) == 0) {
return chatbot_responses[i].output;
}
}
return chatbot_responses[3].output;
}
int main() {
char input[MAX_INPUT_LENGTH];
printf("你好,我是聊天机器人。输入\"再见\"即可退出。\n");
while (1) {
printf("你说: ");
fgets(input, MAX_INPUT_LENGTH, stdin);
input[strcspn(input, "\n")] = '\0'; // 去掉字符串结尾的换行符
if (strcmp(input, "再见") == 0) {
printf("聊天结束,再见!\n");
break;
}
printf("机器人回复: %s\n", get_response(input));
}
return 0;
}
```
这是一个基本的聊天机器人程序,它使用了结构体来存储用户输入和相应的回复。程序通过循环等待用户输入,然后查找相应的回复来进行回答。程序可以处理用户输入中的换行符,并在用户输入“再见”时退出。