新聞中心
C語言匹配數(shù)組里的內(nèi)容,要怎么樣匹配
如果是字符數(shù)組,可以使用strstr函數(shù)查找匹配。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的泉山網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
strstr() 函數(shù)搜索一個字符串在另一個字符串中的第一次出現(xiàn)。找到所搜索的字符串,則該函數(shù)返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,則返回NULL。
包含文件:string.h
函數(shù)名: strstr
函數(shù)原型:
extern char *strstr(char *str1, const char *str2);
語法:
char * strstr(str1,str2)
str1: 被查找目標(biāo) string expression to search.
str2: 要查找對象 The string expression to find.
返回值:若str2是str1的子串,則先確定str2在str1的第一次出現(xiàn)的位置,并返回此str1在str2首位置的地址。;如果str2不是str1的子串,則返回NULL。
如果是普通類型的數(shù)組,需要使用雙重循環(huán)來實(shí)現(xiàn)匹配。
例如:
int?a[10]={0,1,2,3,4,5,6,7,8,9,0};
int?b[3]={5,6,7};
int?i,j;
for(i=0;i7;i++){
for(j=0;j3;j++)?if(a[i+j]!=b[j])?break;?//進(jìn)行匹配,如果其中一個不匹配,中斷循環(huán)。
if(j==3){????//尋找到匹配
printf("匹配!");
break;
}
}
if(i==7){????//循環(huán)完仍未找到匹配
printf("不匹配!");
}
C語言:我的字符串匹配函數(shù)
我這里運(yùn)行,沒有運(yùn)行時錯誤,只是按你的代碼結(jié)果不對。
調(diào)整后代碼如下:
#include?stdio.h
#include?string.h
char?*strstr(char*str1,char*str2)
{
int?n1?=?strlen(str1);
int?n2?=?strlen(str2);
int?flg?=?0;
char?*p1?=?str1;
char?*p2?=?str2;
if(n1n2)?return?NULL;
int?i;
for(i=0;in1-n2+1;i++)
{
p1?=?str1+i;
p2?=?str2;
while(*p2!=NULL)//
{
if(*p1!=*p2)?
{
flg?=?0;
p1++;
p2++;
break;
}
p1++;
p2++;
flg?=?1;????????????????
}
if(flg)?return?str1+i;//你到底要輸出什么,原函數(shù)是輸出位置int
}
return?NULL;//
}
int?main()
{
char?str1[]="str1adsfqwer";
char?str2[]="ads";
char?*p?=?strstr(str1,str2);
printf("%s\n",p);
return?0;
}
c語言字符串匹配
1、c語言字符串匹配可以用strcmp函數(shù)。
2、strcmp是比較兩個字符串的大小,兩個字符串相同時返回0,第一個字符串大于第二個字符串時返回一個正值,否則返回負(fù)值.
比較兩個字符串的算法是:逐個比較兩個串中對應(yīng)的字符,字符大小按照ASCII碼值確定,從左向右比較,如果遇到不同字符,所遇第一對不同字符的大小關(guān)系就確定了兩個字符串的大小關(guān)系,如果未遇到不同字符而某個字符串首先結(jié)束,那么這個字符串是較小的,否則兩個字符串相等。
標(biāo)題名稱:c語言高級匹配函數(shù),精確匹配函數(shù)使用
文章網(wǎng)址:http://ef60e0e.cn/article/dsscidg.html