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