‘壹’ 如何用c语言实现文件的模糊查找-程序设计 C语言 文件名 模糊查找
一要能够查找文件名,首先,要能够遍历目录;把它写出来
二在1的基础上,把获得的每个文件名与key比较,若文件名包含key则找到输出,并
继续;否则不输出继续,查下一个
文件名包含key判断方面,<string.h>里有个strstr可以使用;具体你翻查看下,不再赘述。
‘贰’ 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
‘叁’ C语言 中文 模糊查询
字符串的匹配问题啊,用strstr(),strcmp(),strncmp()等函数可以达到你的目的
‘肆’ 初学C语言,下面这个程序有点模糊,高手分析一下下面的代码:说明一下原因....
a == b 比较的是地址,不是内容。
a和b可以指向两段不同的只读地址,只不过这两段内存区域存储的字符串内容都是"hello".
所以他们内容相同,但是地址却可以不同. 结果可能为NO.
但是,因为两个字符串常量内容相同,又是只读的,所以编译器可以进行优化,把这两个地址指向同一个区域,节省内存。所以这里的答案可以是YES.
相同的字符串常量是否指向同一个地址,由编译器来决定(见C++作者写的<<C++程序设计语言>>)
对于C语言, 见C语言标准ISO C99 (6.4.5/6节):
It is unspecified whether these arrays are distinct provided their elements have the appropriate values.
对于C++, 见ISO C++-98 (2.13.4/2节):
Whether all string literals are distinct(that is, are stored in non overlapping objects) is implementation defined.
可见无论C和C++,都规定相同内容的常量指针地址,未必指向相同地址。这个留给编译器,自由优化。
所以,可以肯定,用地址来比较指针,结果是不可靠的。根据C和C++的标准,这个代码的结果可能是YES,也可能是NO. 对gcc, 结果可能是YES, 对一些TurboC, 默认没有打开优化,结果可能是NO.
总之,无论是为了写出足够可靠的代码,还是为了可读性,都不要用地址进行比较。因为标准已经说明,这个结果是不确定的。
以上代码如果换成
char a[] = "hello";
char b[] = "hello";
结果就一定是NO
要想比较内容, 用strncmp.
#include <string.h>
#include <stdio.h>
main()
{
char *a = "hello";
char *b = "hello";
if(strncmp(a, b, strlen(a)+1) == 0)
printf("YES");
else
printf("NO");
}
‘伍’ c语言中文模糊化处理
一个汉字根据字符编码不同,占两个或三个字节,而一个普通字符只占一个字节,所以当名字后边带有数字的时候,len-2就不能正确的跳过那一个数字了,,而是跳过了数字和那个汉子的“后一半”,最好是再加一层判断,如果strlen>1,同时字符串末尾是数字字符的话,打印的时候-1,否则-2 。不知道这样表述你能不能明白?
‘陆’ 在C语言链表中如何实现模糊中文查找贡功能
用strstr函数,,你懂的
‘柒’ 求C语言编写的模糊查找代码写法
说一下思路
如果程序中客户信息使用结构体,并用链表形成,可以用链表遍历方式进行逐个查找
while(p!=NULL)
{
if(StrIndex(p->data,inputstring)>0)//如果符合串信息
insertLinkList(p);//插入新链表
p=p->next;//指向后续
}
上面StrIndex为
//串的匹配查询
int StrIndex(SqString s,SqString t)//s为主串,t为模式串
{
int i=0,j=0;
while(i<s.len&&j<t.len)//是否到末尾
{
if(s.data[i]==t.data[j])//主串与模式串逐一匹配
{
i++;
j++;
}
else //否则,回溯重新开始下一次匹配
{
i=i-j+1; //主串从下一个位置开始
j=0; //模式串从头开始
}
}
if(j>=t.len) //如果匹配成功
return (i-t.len); //返回主串第一个下标
else
return -1; //匹配失败,返回-1
}
或者用c自带的strstr(cs,ct)函数查询
如果按姓名(编号)查找成功,插人新建立链表head.
在head中继续查找其它成员。
使用函数封装就行
‘捌’ 学了一个半月C语言了,感觉很模糊,老是忘,已经学到函数这了!希望有大神指条明路!以后在路该怎么走!
想要学编程首先要背下来经典的程序,然后多多的时间操作。一些C语言的课本其实讲的都是非常浅的东西,可以找一些练习册来不断的操作,不断地重复。孰能生巧吧····
‘玖’ 在C语言编程中,怎么实现 模糊查找
首先,你的公交系统站点应该会重复多条线路,应该说比较好的方案是你通过至少1个以上站点进行查找而后对你的结果进行排序删除不符合的,最终当只有一条线路存在时再打印你的结果。