永发信息网

c语言 编写一个智能聊天工具

答案:4  悬赏:70  手机版
解决时间 2021-03-29 18:16
c语言 编写一个智能聊天工具
最佳答案
可以使用智能聊天机器人的接口来做
下面是一个简单的使用小耗子机器人提供的接口的聊天代码
#include 
#include 
#include 
#include 

#define BOT_SER "https://brisk.eu.org/smbot/sm.php"

typedef struct
{
    size_t len;
    char *msg;
}MSG;

size_t get_data(char *ptr,size_t size,size_t nmemb,MSG *msg)
{
    msg->msg=realloc(msg->msg,msg->len+nmemb+1);
    snprintf(msg->msg+msg->len,nmemb,"%s",ptr);
    msg->len+=nmemb;

    return nmemb;
}

int main(int argc,char **argv)
{
    CURL *curl;
    MSG msg;
    char buf[1024];
    char data[2048];

    curl=curl_easy_init();
    msg.len=0;
    msg.msg=NULL;

    curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,get_data);
    curl_easy_setopt(curl,CURLOPT_WRITEDATA,&msg);
    curl_easy_setopt(curl,CURLOPT_USERAGENT,"CBot/From Baidu zhidao");

    while(1)
    {
        printf(">");
        scanf("%s",buf);

        if(strcmp(buf,"exit") == 0)
            break;

        snprintf(data,sizeof(data),"%s?msg=%s",BOT_SER,buf);
        curl_easy_setopt(curl,CURLOPT_URL,data);
        curl_easy_perform(curl);

        if(msg.len)
        {
            printf("%s
",msg.msg);
            msg.len=0;
            free(msg.msg);
            msg.msg=NULL;
        }
    }

    curl_easy_cleanup(curl);

    return 0;
}
全部回答

追问滚滚滚滚滚啊滚,滚滚长江水啊,滚滚红尘滚滚红尘客栈,,,
扣扣
#include
#include
#include
 
//定义用户名最大长度
#define P 20
//定义密码最大长度
#define Q 20
//定义用户最大数量
#define N 100
 
//定义用户属性的结构体
struct user
{
char user_name[P];//用户名
char user_code[Q];//密码
intfriend_num; //好友数量
intuser_friend[N];//好友名单
};
 
void main()
{
intp = 0;//操作步骤
intn = 0;//用户数量
inti = 0;//过程操作数
intj = 0;//过程操作数
intlog_id;//合格登陆号码
char log_name[P];//用户名临时存储
char log_code[Q];//密码临时存储
user my_user[N]; //定义用户
while(1)
{
switch(p)
{
case 0://注册登陆选择界面
printf("请选择功能: ");
printf("1.登陆 ");
printf("2.注册 ");
scanf("%d",&i); //过程数i记录接收数据
if(i ==1 || i == 2)
{
p = i;
}
else
{
printf("输入错误! ");
p = 0;
}
i = 0; //过程数i清零
break;
case 1://登陆界面
printf("请输入用户名: ");
scanf("%s", &log_name);
printf("请输入密码: ");
scanf("%s", &log_code);
for(i=0;i{
if(strcmp(my_user[i].user_name, log_name) == 0)//验证用户名
{
if(strcmp(my_user[i].user_code, log_code) == 0) //验证密码
{
printf("登陆成功! ");
log_id = i; //记录合格登陆号码
p = 3;
j = 1;//过程数j作为操作步骤变化标识
}
else
{
printf("密码错误! ");
p = 1;
j = 1;
}
}
}
i = 0; //过程数i清零
j = 0; //过程数j清零
break;
case 2://注册界面
printf("请输入用户名: ");
scanf("%s", &log_name);
printf("请输入密码: ");
scanf("%s", &log_code);
strcpy(my_user[n].user_name, log_name); //保存用户名
strcpy(my_user[n].user_code, log_code); //保存密码
n++; //记录注册用户数
printf("注册成功! ");
p = 0;
break;
case 3://用户界面
printf("当前登陆用户:%s ", my_user[log_id].user_name);
printf("请选择其他操作: ");
printf("1.显示好友名单 ");
printf("2.增加好友 ");
printf("3.删除好友 ");
printf("4.好友分组 ");
printf("5.自选功能 ");
printf("6.登出 ");
scanf("%d",&i); //过程数i记录接收数据
if(i >=1 && i <= 6)
{
p = i+3;
}
else
{
printf("输入错误! ");
p = 3;
}
i = 0; //过程数i清零
break;
case 4://显示好友名单
printf("好友名单: ");
for(i=0;i{
j = my_user[log_id].user_friend[i]; //过程数j记录用户好友号码
printf("%s ", my_user[j].user_name);
}

p = 3;
i = 0;
j = 0;
break;
case 5://增加好友,未实现
p = 3;
break;
case 6://删除好友,未实现
p = 3;
break;
case 7://好友分组,未实现
p = 3;
break;
case 8://自选功能,未实现
p = 3;
break;
case 9://登出
for(i=0;i<20;i++)
{
log_name[i] = 0; //清除用户名临时存储
log_code[i] = 0; //清除密码临时存储
}
p = 0; //返回初始页面
i = 0; //过程数i清零
break;
default:
p = 0;
break;
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
ARM版Windows系统是什么意思?
制作糖蒜怎么做
请问美国定量宽松的货币政策对中国影响
高一难题1到12数学难题
在演仙剑奇侠传的时候胡歌多少岁?
怎样从外观看出鱼的年龄?
朋友关系一男一女 在一个床上共处一夜 什么都
48除以2等于多少
一个人的标准体重怎么计算
夏利N3 10仪表盘里的EPS灯亮了是什么故障
嫁女叫于归,回门叫什么?
人的手脚经断了会怎么样?经脉尽断呢?
天猫很久没卖出去的宝贝,需要重新发布宝贝吗
当哥的这样子回答是什么样的心态?
对网站进行测试和评估的工作内容~
推荐资讯
胶州城乡建设局能考电工证吗
绝地求生登录不进去,然后一直就显示这样;电
一楼三楼都有电,就二楼没就有电按电闸就跳闸
水准仪测量的高程与高差有什么区别
请问一下迎驾典藏酒15年多少钱一瓶
800除以25列综合算式要怎么列
英文投稿bio statement怎么填
与青平乐·村居牧童舟过安仁表达感情相似的诗
流云的txt全集下载地址
无线静电环与有线静电环工作原理
卡西欧计算器fx-95怎么复原
呼市2016三十五中和18中中考成绩排名
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?