大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用strstr这个函数
我们提供的服务有:做网站、成都网站设计、微信公众号开发、网站优化、网站认证、连山ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的连山网站制作公司
包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括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;
}
定于一个数组 char a[100]
定义一个 bool flag=false;
int j=0;
遍历text1数组
for(int i=0;istrlen(text1);i++)
遇见'{' 或'['
flag=ture;
if(flag) {
a[j]=text[i];
j++;}
遇见"}" "]"
flag=false;
over
C语言中的标准函数库中的strchr()函数可以实现查找字符串中的某个字符。
C语言strchr()函数:
查找某字符在字符串中首次出现的位置
头文件:#include string.h
strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:
char * strchr (const char *str, int c);
【参数】str 为要查找的字符串,c 为要查找的字符。
strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。
注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。
【返回值】如果找到指定的字符则返回该字符所在地址,否则返回 NULL。
返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。
提示:如果希望查找某字符在字符串中最后一次出现的位置,可以使用 strrchr() 函数。