用strstr這個函數(shù)

我們提供的服務(wù)有:做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、連山ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的連山網(wǎng)站制作公司
包含文件:string.h
函數(shù)名: strstr
函數(shù)原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出現(xiàn)的位置(不包括str2的串結(jié)束符)。
返回值:返回該位置的指針,如找不到,返回空指針。
由于測試,我代碼中“要查找的字符串”和“目標(biāo)字符串”,我都用常量賦值了。如果你想寫手動輸入字符串或從文件讀取,自己寫輸入賦值給這個兩個變量就行。
代碼主要功能:SINX *findStr(int benIndex,char *tStr,char *fStr);
從目標(biāo)字符串tStr中查找指定的字符串fStr,benIndex是查找的起始位置,首次調(diào)用benIndex=0。
查找下一個時,benIndex取上次查找返回值SINX-endIndex+1。
#include?stdio.h
#include?malloc.h
#include?string.h
typedef?struct?strIndex//查找字符串在目標(biāo)字符串中首字符下標(biāo)和尾字符下標(biāo)
{
int?benIndex;
int?endIndex;
}SINX;
SINX?*findStr(int?benIndex,char?*tStr,char?*fStr);//benIndex:查找的起始下標(biāo)。找到則返回對應(yīng)下標(biāo)結(jié)構(gòu),未找到返回NULL
int?main()
{
SINX?*findSINX=NULL;
int?n,benIndex=0;
//tStr:目標(biāo)字符串,fStr:要查找的字符串
char?*tStr="djasdasl?aaa?djsalkdjsakdj?aaa?dsakd;sakd;all";
char?*fStr="aaa";
printf("查找字符串:\n%s\n",fStr);
printf("目標(biāo)字符串:\n%s\n",tStr);
while(1)
{
findSINX=findStr(benIndex,tStr,fStr);
if(findSINX)
{
printf("\n找到!!,首字符在第%d個字符位置,尾字符在第%d個字符位置\n",findSINX-benIndex+1,findSINX-endIndex+1);
printf("\n1、查找下一個;2、結(jié)束;??輸入:");
n=scanf("%d",n);
if(n==1)
benIndex=findSINX-endIndex+1;
else
break;
}
else
break;
}
return?0;
}
SINX?*findStr(int?benIndex,char?*tStr,char?*fStr)//benIndex:查找的起始下標(biāo)。找到則返回對應(yīng)下標(biāo)結(jié)構(gòu),未找到返回NULL
{
int?tLen=strlen(tStr),fLen=strlen(fStr),i,j,k;
SINX?sinx,*reSINX=NULL;
sinx.benIndex=sinx.endIndex=-1;
for(i=benIndex;itLen;i++)
{
k=i;
for(j=0;jfLen;j++)
{
if(tStr[k]!=fStr[j])
break;
else
if(sinx.benIndex==-1)
sinx.benIndex=k;
k++;
}
if(j==fLen)
{
sinx.endIndex=k-1;
break;
}
else
sinx.benIndex=sinx.endIndex=-1;
}
if(sinx.benIndex==-1)
return?NULL;
reSINX=(SINX?*)malloc(sizeof(SINX));
if(!reSINX)
{
printf("異常!查找失敗!");
return?NULL;
}
*reSINX=sinx;
return?reSINX;
}
定于一個數(shù)組 char a[100]
定義一個 bool flag=false;
int j=0;
遍歷text1數(shù)組
for(int i=0;istrlen(text1);i++)
遇見'{' 或'['
flag=ture;
if(flag) {
a[j]=text[i];
j++;}
遇見"}" "]"
flag=false;
over
C語言中的標(biāo)準(zhǔn)函數(shù)庫中的strchr()函數(shù)可以實(shí)現(xiàn)查找字符串中的某個字符。
C語言strchr()函數(shù):
查找某字符在字符串中首次出現(xiàn)的位置
頭文件:#include string.h
strchr() 用來查找某字符在字符串中首次出現(xiàn)的位置,其原型為:
char * strchr (const char *str, int c);
【參數(shù)】str 為要查找的字符串,c 為要查找的字符。
strchr() 將會找出 str 字符串中第一次出現(xiàn)的字符 c 的地址,然后將該地址返回。
注意:字符串 str 的結(jié)束標(biāo)志 NUL 也會被納入檢索范圍,所以 str 的組后一個字符也可以被定位。
【返回值】如果找到指定的字符則返回該字符所在地址,否則返回 NULL。
返回的地址是字符串在內(nèi)存中隨機(jī)分配的地址再加上你所搜索的字符在字符串位置。設(shè)字符在字符串中首次出現(xiàn)的位置為 i,那么返回的地址可以理解為 str + i。
提示:如果希望查找某字符在字符串中最后一次出現(xiàn)的位置,可以使用 strrchr() 函數(shù)。
文章題目:c語言篩選出有效字符函數(shù),c語言搜索特定字符
網(wǎng)頁路徑:http://chinadenli.net/article15/dsepjgi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、用戶體驗(yàn)、靜態(tài)網(wǎng)站、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)