Ⅰ 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 。不知道這樣表述你能不能明白?