#include <stdio.h>
#include <string.h>
//查找big中出现smal的次数
void findstr(char*big ,char* smal,int pos[],int *nmb)
{
int i,j,lenb,lens;
lenb = strlen(big);
lens = strlen(smal);
*nmb = 0;
if(lens > lenb)
return;
i = 0;
while(i < lenb-lens+1)
{
for (j = 0; j < lens;j++)
{
if(big[i+j] != smal[j])
break;
}
if (j == lens) //说明找到
{
pos[*nmb] = i;
(*nmb)++;
//如果只找第一个位置,可以直接在这里return
//return;
i += lens;
}else
i++;
}
}
int main()
{
char big[100]={0};//数组大小自己调整
char sml[20]={0};
int pos[20],nmb=0;
printf("主串:");
scanf("%s",big);
printf("子串:");
scanf("%s",sml);
findstr(big,sml,pos,&nmb);
if(nmb == 0)
printf("主串不包含子串");
else
printf("位置:%d",pos[0]+1);
return 0;
}