C语言小机器人
[cpp]?view plaincopyprint?
#?include?<stdio.h>?? #?include?<stdlib.h>?? ?? #?define?MAXSTR?200?? #?define?REBOT?"小C說:?"?? #?define?YOUR?"您?說:?"?? #?define?EXIT?"-e\n"?? #?define?NOREPLY?"我不知道你說什么呢!\n"?? ?? char?*GetRebot(char?*str,?char?*reply);?//處理接收的對話內容,返回機器人回復內容?? void?DelHr(char?*str);?//刪除獲取到的字符串中的換行?? void?RobotSay(char?*str);?//機器人回復?? ?? int?main(void)?? {?? ????char?str[1024];?? ????char?reply[600];?? ????printf("**************************聊天機器人****************************\n");?? ????printf("\n%sHI,我是聊天機器人小C,很高心和您認識^?^?退出聊天請輸入-e\n",REBOT);?? ?? ????do?? ????{?? ????????printf("%s",YOUR);?? ????????scanf("%s",str);?? ????????printf("%s",REBOT);?? ?????????? ????????if?(str[0]?!=?'-'?&&?str[1]?!=?'e'?)?? ????????{?? ????????????GetRebot(str,?reply);?? ????????????RobotSay(reply);?? ????????????printf("\n");?? ????????}?? ????????else?? ????????????printf("和您聊天真實愉快,歡迎下次再來和我聊天~\n");?? ????}while(str[0]?!=?'-'?&&?str[1]?!=?'e'?);?? ?? ????return?0;?? }?? ?? char?*GetRebot(char?*str,?char?*reply)?? {?? ????static?char?keywords[500];?? ????int?i?=?0;?? ????FILE?*?fp;?? ?? ????if(?(fp?=?fopen("reply","r"))?==?NULL)?? ????{?? ????????printf("缺少核心文件!!\n");?? ????????exit(-1);?? ????}?? ?? ????while?(?!feof(fp)?)?//獲取關鍵字?? ????{?? ????????i++;?? ????????fgets(keywords,?500,?fp);?? ????????DelHr(keywords);?? ?????? ????????if(?i?%?2?!=?0)?? ????????{?? ????????????if(?strstr(str,?keywords)?!=?0?)?? ????????????{?? ????????????????fgets(reply,?500,?fp);?? ????????????????fclose(fp);?? ????????????????return?reply;?? ????????????}?? ????????}?? ????}?? ????fclose(fp);?? ????return?NOREPLY;?? }?? ?? void?DelHr(char?*str)?? {?? ????int?i,j;?? ?????? ????for(i=0;?str[i]?!=?'\0';?i++)?? ????{?? ????????if(str[i]?==?'\n')?? ????????{?? ????????????for(j=i;?str[j]?!=?'\0';?j++)?? ????????????????str[j]?=?str[j+1];?? ????????}?? ????}?? }?? ?? void?RobotSay(char?*str)?? {?? ????printf("%s\n",?str);?? } ?
總結
- 上一篇: (转发)详解汽车UDS诊断协议(二)
- 下一篇: JAVA之运算符优先级