#include<stdio.h>
int main()
{
int i,j;
char a[80],char b[80];
gets(a);
gets(b);
for(i=0;a[i]!='\0';i++)
{
for(j=0;a[j]!='\0';j++)
if(a[i+j]!=b[j])
break;
if(b[j]=='\0')
break;
}
if(a[i]!='\0')
printf("%d",i+1);
return 0;
}
#include<stdio.h>
int main()
{
int i,j;
char a[80],char b[80];
gets(a);
gets(b);
for(i=0;a[i]!='\0';i++)
{
for(j=0;a[j]!='\0';j++)
if(a[i+j]!=b[j])
break;
if(b[j]=='\0')
break;
}
if(a[i]!='\0')
printf("%d",i+1);
return 0;
}
外层循环就是a数组逐个字符作为开头字符与b数组进行比较
内层循环就是从i开始,逐个字符与b数组进行比较,如果某个字符不想等,则比较结束
if(b[j] == '\0')表示b字符串已经比较结束,说明找到b串在a串种的位置了,break表示查找结束
if(a[i] !='\0')表示a串并没有检索到尾部,说明查找过程中找到子串了,否则a会一直找到结束。输出i+1即为b串在a串中出现的位置