用strstr這個函數(shù)
我們提供的服務有:做網站、成都網站設計、微信公眾號開發(fā)、網站優(yōu)化、網站認證、連山ssl等。為上千多家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的連山網站制作公司
包含文件:string.h
函數(shù)名: strstr
函數(shù)原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出現(xiàn)的位置(不包括str2的串結束符)。
返回值:返回該位置的指針,如找不到,返回空指針。
由于測試,我代碼中“要查找的字符串”和“目標字符串”,我都用常量賦值了。如果你想寫手動輸入字符串或從文件讀取,自己寫輸入賦值給這個兩個變量就行。
代碼主要功能:SINX *findStr(int benIndex,char *tStr,char *fStr);
從目標字符串tStr中查找指定的字符串fStr,benIndex是查找的起始位置,首次調用benIndex=0。
查找下一個時,benIndex取上次查找返回值SINX-endIndex+1。
#include?stdio.h
#include?malloc.h
#include?string.h
typedef?struct?strIndex//查找字符串在目標字符串中首字符下標和尾字符下標
{
int?benIndex;
int?endIndex;
}SINX;
SINX?*findStr(int?benIndex,char?*tStr,char?*fStr);//benIndex:查找的起始下標。找到則返回對應下標結構,未找到返回NULL
int?main()
{
SINX?*findSINX=NULL;
int?n,benIndex=0;
//tStr:目標字符串,fStr:要查找的字符串
char?*tStr="djasdasl?aaa?djsalkdjsakdj?aaa?dsakd;sakd;all";
char?*fStr="aaa";
printf("查找字符串:\n%s\n",fStr);
printf("目標字符串:\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、結束;??輸入:");
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:查找的起始下標。找到則返回對應下標結構,未找到返回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語言中的標準函數(shù)庫中的strchr()函數(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 的結束標志 NUL 也會被納入檢索范圍,所以 str 的組后一個字符也可以被定位。
【返回值】如果找到指定的字符則返回該字符所在地址,否則返回 NULL。
返回的地址是字符串在內存中隨機分配的地址再加上你所搜索的字符在字符串位置。設字符在字符串中首次出現(xiàn)的位置為 i,那么返回的地址可以理解為 str + i。
提示:如果希望查找某字符在字符串中最后一次出現(xiàn)的位置,可以使用 strrchr() 函數(shù)。