发呆机器人-可以按模式聊天.doc

发呆机器人-可以按模式聊天.doc

ID:29006720

大小:29.00 KB

页数:6页

时间:2018-12-15

发呆机器人-可以按模式聊天.doc_第1页
发呆机器人-可以按模式聊天.doc_第2页
发呆机器人-可以按模式聊天.doc_第3页
发呆机器人-可以按模式聊天.doc_第4页
发呆机器人-可以按模式聊天.doc_第5页
资源描述:

《发呆机器人-可以按模式聊天.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、发呆机器人-可以按模式聊天/*****************************说明******************************这个程序是在ylsdd的防止发呆的程序的基础上改的. *****主要功能: *****防止发呆,过一段时间会发出一个Ctl+L; *****能按给定的模式响应聊天信息; *****可以自动回msg; *****把整个上bbs过程写在bbs.log里 *****使用方法: *****把fd.c和bbs.rule放在同一目录下. *****gcc -o fd fd.c ****

2、*fd *****程序是缺省连smth的,如果用于其它bbs要做改动.请看相关注释行. *****bbs.rule的定义方法是每行一个规则. *****&表示空格..是匹配任何字符串的通配符,0,1,2,3,4用来存放匹配的子串. *****例如: *****==>.&把&++&踢的死去活来 /a&一运气,0的腿就折了 *****这句话就是定义了,当有人对聊天id为++的作如下动作: *****==>rika 把 ++ 踢的死去活来 *****那么就返回"/a 一运气,rika的腿就折了" *****"==>"是smth

3、上用的聊天提示符,若用于别的bbs请按实际情形改动. ******************************说明结束********************///fd.c #include  #include  #include  #include  #include  #include  #include  #include  struct t

4、ermios tsave; int match2(char *mod,char *set,char *answer) {  int i,j,k,c,sign;  char ar[5][50];  c=0;  j=0;k=0;  sign=0;  for(i=0;mod[i];i++)if(mod[i]=='&')mod[i]=' ';  i=0;  while(mod[i])  {   if(mod[i]!='.')   {     if(mod[i]!=set[j])return 0;     i++;j++;   }

5、   else   {    for(k=j+1;set[k];k++)    {     if(mod[i+1]==set[k]&&(mod[i+2]==set[k+1]

6、

7、set[k]>0))     {       i+=2;       strncpy(ar[c],set+j,k-j);       ar[c][k-j]=0;       j=k+1;       c++;       break;     }    }    if(!set[k])return 0;   }  }  j=0;  for(i=0;

8、answer[i];i++)  {   if(answer[i]>='0'&&answer[i]<'5')    for(k=0;ar[answer[i]-'0'][k];k++)set[j++]=ar[answer[i]-'0'][k];   else   {    if(answer[i]=='&')set[j++]=' ';    else set[j++]=answer[i];   }  }  set[j]=0;  return 1; } int match(char *buf,int *l) {  char m

9、od[1024],answer[1024];  FILE *rulefile;  int i;  for(i=0;buf[i];i++)if(buf[i]==7)  {   strcpy(buf,"r对不起,现在我不在,若有事请给我写信!");  //可以换成你自己要回的信息.   *l=strlen(buf);   buf[*l]=13;   return 1;  }  rulefile=fopen("bbs.rule","r");  while(fscanf(rulefile,"%s %s",mod,answe

10、r)==2)  {   if(match2(mod,buf,answer))   {    *l=strlen(buf);    buf[*l]=13;    fclose(rulefile);    return 1;   }  }  fclose(rulefile);  return 0; } void scan

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。