Ⅰ c语言 寻求强大的模糊搜索源码
网络的搜索是有语法分析的,他能把词从字符串中分析出来单独进行比较,这个一般是做不到的
咱们能做的也只能是按空格分隔开
Ⅱ 谁有用C语言写的模糊PID程序输入单片机中
1、把C语言编译为编程器支持的语言格式,比如常用的bin,或hex等格式。 2、如果是可在线编程的,可以用ISP直接进行烧录。 3、如果不是可在线编程的,将单片机芯片,放入编程器,然后烧录。 注意:编译和烧录时,都要选择和单片机芯片一致的型号
Ⅲ 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语言实现文件的模糊查找-程序设计 C语言 文件名 模糊查找
一要能够查找文件名,首先,要能够遍历目录;把它写出来
二在1的基础上,把获得的每个文件名与key比较,若文件名包含key则找到输出,并
继续;否则不输出继续,查下一个
文件名包含key判断方面,<string.h>里有个strstr可以使用;具体你翻查看下,不再赘述。
Ⅳ c语言如何实现模糊查找
//模糊搜索判断是否符合筛选条件
intresult_mohu(constgchar*key,char*str)
{
typedefstruct
{
charson[11];
}
Element;
inti,j,k=0,l=0,m=0;
//f=1为符合筛选条件
intf=0;
//N1为str的长度N2为str连续子串的个数
intN1=0,N2=0;
N1=strlen(str);
/*计算连续子串的个数*/
for(i=1;i<=N1;i++)
N2+=i;
/*计算连续子串的个数*/
//i控制子字符串的长度
//j控制赋值
//k控制新的线性结构b的下标
//l控制子数组的首项在原数组中的位置
//m控制即将用作赋值的str的下标
Element*b=malloc(sizeof(Element)*N2);
for(i=1;i<=N1;i++)
{
l=0;
/*while循环内为给一个子字符串数组赋值*/
while(1)
{
m=l;
for(j=0;j<i;j++)
{
b[k].son[j]=str[m];
m++;
}
l++;
k++;
if(m==N1)
break;
}
}
//挨个比对
for(i=0;i<N2;i++)
if(strcmp(key,b[i].son)==0)
{
f=1;
break;
}
free(b);
returnf;
}
(5)c语言模糊代码扩展阅读
c语言线性搜索
#include<stdio.h>
intsearch (intkey,inta[],intlen)
{
intret=-1;
for(inti=0;i<len;i++)
{
if(key==a[i])
{
ret=i;
break;
}
}
returnret;
}
intmain()
{
inta[]={1,3,5,6,8,9,15,18,20,22,26,45};
intr=search(15,a,sizeof(a)/sizeof(a[0]));
printf("%d ",r);
return0;
}
Ⅵ 用C语言编写九九乘法表 只要结果 要完整代码 谢谢 (图片有点模糊
#include <stdio.h>
int main()
{int i,j;
for(i=1;i<10;i++) //共打印9行
{for(j=1;j<=i;j++) //第i行有i个乘法口诀
printf("%d*%d=%-2d ",i,j,i*j); //输出时保证一位、二位的积都向左对齐
printf("\n"); //一行输出结束后换行
}
return 0;
}
Ⅶ c语言如何实现模糊查找
1、首先,打开网页-【C语言在线编程工具】。
Ⅷ 输入前几个字母就能找出这个单词的模糊查找,用c语言如何编程
给你个思路,每次查找都至少找到5个结果才结束,一个单词,先获取单词部分,根据输入长度截取单词,只要匹配就可以。
在高级点一个单词,先获取单词部分,再遍历单词,按照输入的长度 每次截取那么长再比较,
如果你会连接数据库就不用这些代码了,直接用LIKE %%。
Ⅸ 初学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 。不知道这样表述你能不能明白?