永发信息网

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

答案:4  悬赏:70  手机版
解决时间 2021-03-29 18:16
  • 提问者网友:niaiwoma
  • 2021-03-28 21:03
c语言 编写一个智能聊天工具
最佳答案
  • 五星知识达人网友:煞尾
  • 2021-03-28 21:47
可以使用智能聊天机器人的接口来做
下面是一个简单的使用小耗子机器人提供的接口的聊天代码
#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;
}
全部回答
  • 1楼网友:猎心人
  • 2021-03-29 01:43

追问滚滚滚滚滚啊滚,滚滚长江水啊,滚滚红尘滚滚红尘客栈,,,
  • 2楼网友:舍身薄凉客
  • 2021-03-29 00:19
扣扣
  • 3楼网友:人類模型
  • 2021-03-28 23:17
#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;
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯