| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 401 人关注过本帖
标题:求助一串代码的意思!
只看楼主 加入收藏
tegry
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-4-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求助一串代码的意思!
size_t nKnowledgeBaseSize = sizeof(KnowledgeBase)/sizeof(KnowledgeBase[0]);

record* find_match(char*  input) {
    for(int i = 0; i < nKnowledgeBaseSize;  ++i) {
        if( !stricmp( KnowledgeBase[i].input, input ) )
            return &KnowledgeBase[i];
    }
    return NULL;
}

void chatterbot2()
{
    srand((unsigned) time(NULL));

    char sInput[20] = {0};
    char* sResponse = NULL;

    while(1) {
        printf("我:");
        scanf("%19[^\n]", &sInput);
        fflush(stdin);

        record* responses = find_match(sInput);
        if(sInput == "BYE") {
            printf("和你聊天太愉快了,下次再来!\n");
            _sleep(1000);
            break;
        }
        else if( !responses )  {
            printf("我,我,我不确定我是否能理解你说的是什么 ...\n");
        }
        else {
            int nSelection = rand()  % MAX_RESP;
            sResponse = responses->responses[nSelection];
            printf("%s\n", sResponse);
        }
    }
}


int main()
{
   
    chatterbot2();
    return 0;
}
搜索更多相关主题的帖子: return record 
2015-05-08 16:28
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
一个简单的聊天机器人代码。算法还很初级,就是从已有的知识库里搜索到匹配的若干条回答,如果随机输出其中一条而已。

说它初级的原因在于,它的匹配只是简单的字符串匹配(而且是完整的匹配),不涉及任何语法知识。一旦匹配不到它只会说个“我,我,我不确定我是否能理解你说的是什么 ...”

聊天的结束也必须是与之聊天者输入“BYE”,说个“再见”也不行。

从sInput == "BYE"这句判断,这段代码也不是C语言。应该是C++。

重剑无锋,大巧不工
2015-05-09 01:08
快速回复:求助一串代码的意思!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043012 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved