永发信息网

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

答案:1  悬赏:20  手机版
解决时间 2021-11-15 06:00
在c++中怎么实现实时模糊查询,就是每当你输入一个字就会连着前面输入的字,进行模糊查询
最佳答案
字符串模糊查询,主要是输入不完全的信息进行查找,即每次查找的是待查询的内容中是否含有输入的内容,如果有,则表示找到了。下面详细的介绍下模糊查询的实现方法,代码如下:
#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){
}
}你每次输入新的时候就可以判断了,
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有首歌的歌词是白雪汾飞
60片大60暖气片供热选用多大的锅子
长春两横两纵到底还实施不????普阳街两侧
影沫私人影咖&9DVR虚拟现实体验地址在什
车床加工压花,固定齿距,压花外径多大才能保
高层养猫要注意什么?
坐汽车可以带乌龟吗?
漂亮宝贝儿童摄影(绥芬河镇花园路14号漂亮宝
难道30多岁结过婚的,都有情人吗
宜春什么时候考试啊?
打火烧的五香面怎么做
毛概分析题 香港占中运动的影响
argument for and against 为什么不加 betwee
四斗粮村地址在哪,我要去那里办事,
女士时常爱抓紧脚趾是为什么
推荐资讯
2012美国总统竞选辩论共有几场?
隆胸过安检能看出来是假的吗?
一人不扛三杆帆什么意思
这种图片边框素材哪里可以下载到?
回家的诱惑,那个高珊珊是什么结局,她最后嫁
HTC+D816w拍摄的照片在哪个文件夹?
自然数一到两百里数字一一共出现几次
被减数减数和差的和是18其中减数是7,差是多
“当物体失去外力时,由于物体具有惯性,会保
tda系列5脚功放电路有哪些
我打算注册一家螃蟹的商贸公司,那么我需要交
有谁见过用过了期的五香瓜子来榨油的葵瓜子粕
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?