C语言 关于模糊查询的问题

作者&投稿:招晨 (若有异议请与网页底部的电邮联系)
C语言模糊查询问题~

请查阅
string.h
strstr函数
函数名:
strstr

能:
在串中查找指定字符串的第一次出现

法:
char
*strstr(char
*str1,
char
*str2);
说明:返回指向第一次出现str2位置的指针,如果没找到则返回null。
调用函数,判断返回值是否等于null,决定是否输出
如;
char
*p=".c";
//需要的子串
if(strstr(a,p))
printf("%s",a);
本贴来自zdnetchina中文社区
http://bbs.zdnet.com.cn
,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=830588

#include #include #include int main(int argc, const char * argv[]){ char str[] = "hello welcome to china\0"; //源字符串 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; } }}

请查阅
string.h
strstr函数
函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: char *strstr(char *str1, char *str2);
说明:返回指向第一次出现str2位置的指针,如果没找到则返回NULL。

调用函数,判断返回值是否等于NULL,决定是否输出
如;
char *p=".c"; //需要的子串
if(strstr(A,p)) printf("%s",A);
本贴来自ZDNetChina中文社区 http://bbs.zdnet.com.cn ,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=830588

实现思想有两种
1.
把名字中的各个字用不同的变量表示,然后就实现查询,看似模糊,其实还是准确的,只是查询函数写两个,一个是针对单个字的,一个是针对整个名字的。
2.
用正则表达式库,在boost库函数中有这个库,你可以上网搜搜,然后下载安装,使用,可以实现“张*”代表张三,张四等所有以张开头的人,当然,输入“张”,你可以在后台给添加上*即可。

在字符串中找子字符串,是否存在就可以了。
采纳哦

正则表达式可以解决
http://www.boost.org/doc/libs/1_35_0/doc/html/xpressive.html


建昌县19692229531: c语言怎样实现对数字模糊查找 -
法品岳源: 字符串模糊查询,主要是输入不完全的信息进行查找,即每次查找的是待查询的内容中是否含有输入的内容,如果有,则表e68a84e8a2ade79fa5e9819331333363376434示找到了.下面详细的介绍下模糊查询的实现方法,代码如下:...

建昌县19692229531: 关于C语言模糊查找问题!!在线等!拜托! -
法品岳源: #include <stdio.h>#include <stdlib.h>#include <string.h> int main(int argc, const char * argv[]) { char str[] = "hello welcome to china\0"; //源字符串 printf("input a string:\n");char str2[20]; //要查找的字符串 fgets(str2, 19, stdin); char *res; res = ...

建昌县19692229531: 在C语言编程中,怎么实现 模糊查找? -
法品岳源: 首先,你的公交系统站点应该会重复多条线路,应该说比较好的方案是你通过至少1个以上站点进行查找而后对你的结果进行排序删除不符合的,最终当只有一条线路存在时再打印你的结果.

建昌县19692229531: C语言中,mysql语句,如何实现两表的模糊查询? -
法品岳源: c语言中的 单引号都需要反编译的 也就是\' 这个要注意,其他应该都是一样的..要不你单点运行,获取c中运行后的 sql语句 ..然后再MYsql 里运行.. 看能成功不

建昌县19692229531: C语言如何查找名字? -
法品岳源: 1、有一个函数叫strstr,原型是 char *strstr(char *str1, char *str2),功能是找出str2字符串在str1字符串中第一次出现的位置.2、例如: char *p=strstr(a,b); if(NULL != p) {//a中不存在b,添加相应代码 } else {//a中存在b,添加相应代码 } 返回值p为a中第一次出现b的位置 这个函数要包含头文件string.h

建昌县19692229531: 在c\c++里怎么实现像*通配符模糊查找 -
法品岳源: 其实可以用穷举法,我的主要思想是,如 aczStr[6] = "fale "; 注意aczStr后面加个空格,让后采用strstr查找,然后在穷举的范围内对第二个字母做替换然后再次查找,如此直到最后一个穷举完成;另外一个方法就是一个字母一个字母的比较.跳过第二个字母匹配后面两个字母,此时中间这个还要考虑是不是空格.

建昌县19692229531: 求一C语言程序设计作业,工资管理系统 -
法品岳源: /**由于时间关系,模糊查询只写了姓名查找***//***模糊查询可能建链表有问题,还有填写工资单也可能有一点问题**/#include <dos.h>#include <bios.h>#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <math.h>#define R 8#define ...

建昌县19692229531: 关于C#.net使用搜索(模糊查询)的一个问题,请高手进来回答! -
法品岳源: 可以这样试试,就是手动来设定逻辑.先判断是否有出现某些关键字(比如“省”……),没有的话就按你前面那样模糊查询,如果有的话,你可以设定截取 输入的字符中“省”的前面的那些字符串来做条件,这样后面也就不用变了.-------------------------------------------------------------------------------------------------- 只是一个想法,试试看符不符合你的逻辑.

建昌县19692229531: C# 模糊查询问题.哪位帮忙解决一下? -
法品岳源: 第一条:要有拼音与汉字转换的程序 第二条:如果第一条不能做到,那么在数据库中要有一列表示为“拼音”或者“简拼”的字段.第三条:利用SQL语句中的Like字句,就如楼上所说.

建昌县19692229531: 谁能帮我解答 c语言模糊选择
法品岳源: //添加头文件 #include <conio.h> int num; for(int i=0;i<1;i++) { fflush(stdin); a1=_getch(); fflush(stdin);if(a1 >47 && a1<58) { printf("%c",a1); num = (int) a1; } else if(8==a1) { if(i==0) { printf(" \b"); i--; } else if(i>0) { printf("\b \b"); i=i-2; } } else { if(i>-1) { printf(" \b"); i--; } } }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网