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

来源:百度知道 编辑:UC知道 时间:2024/07/05 19:56:11
我刚学完勒C语言的基础
想请教几个问题
我有一个结构体,这个结构体主要包括姓名,年龄,性别 电话号码等等
我想做一个模糊查询的功能,加入说 里面有如下两个参数,张三,20 男 13800000 还有一个是 张四 20 男 1380000080
我想做一个如下功能,在查询的时候,输入张,则列出张三和张四两个人的信息 或者输入138 列出两人的信息 请问一下思路是如何的,希望大家帮帮忙 谢谢了 就是一个模糊查询功能
如果我想实现输入z 张三张四的信息都能显示出来的话 该怎么实现呢?

请查阅
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