永发信息网

在c++中怎么实现实时模糊查询,就是每当你输入一个字就会连着前面输入的字,进行模糊查询

答案:1  悬赏:20  手机版
解决时间 2021-11-15 06:00
  • 提问者网友:半生酒醒
  • 2021-11-14 12:58
在c++中怎么实现实时模糊查询,就是每当你输入一个字就会连着前面输入的字,进行模糊查询
最佳答案
  • 五星知识达人网友:山河有幸埋战骨
  • 2021-11-14 13:11
字符串模糊查询,主要是输入不完全的信息进行查找,即每次查找的是待查询的内容中是否含有输入的内容,如果有,则表示找到了。下面详细的介绍下模糊查询的实现方法,代码如下:
#include 
#include 
#include 
  
int main(int argc, const char * argv[])
{
  char str[] = "hello welcome to china"; //源字符串
  printf("input a string:
");       
  char str2[20];              //要查找的字符串
  fgets(str2, 19, stdin);
  char *res;
  res = memchr(str, str2[0], strlen(str));  //根据要查找的字符串第一个字符,切割源字符串
  if (res == NULL)
  {
    printf("find nothing...
");
    return 0;
  }
   
  int n;
  while (1)
  {
    n = memcmp(res, str2, strlen(str2) - 1); //比较
    if (n != 0)
    {
      if (strlen(res) <= strlen(str2))  //切割出的字符串小于要查找字符串的长度
      {
        printf("find nothing...
");
        return 0;
      }
      else
      {  
       //根据要查找的第一个字符继续切割
        res = memchr(res + 1, str2[0], strlen(res));  
        if (res == NULL)
        {
          printf("find nothing...
");
          return 0;
        }
          
      }
    }
    else
    { //如果n = 0,找到
      printf("%s is found..
", str2);
      return 0;
    }
  }
}追问不是这样的,你这样是回车后才模糊查询的,我要的是每当我们键入一个字符他就会去执行模糊查询的,就相当于百度一样追答你可以每次输入一个字符
getchar();
每getchar一次之后吧新get到的字符链接上之前的字符形成新的字符串在进行判断
while(s = getchar){
s1+=s;

判断(s1){
}
}你每次输入新的时候就可以判断了,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯