#include<stdio.h>
#include<string.h>
int main()
{
char a[100], b[100];
gets(a);//输入小字符串
gets(b);//输入大字符串
int len = strlen(a);
int sign = 0;//用来标记在字符串b中与a[0]相同的元素b[sign]的下标。
int j = 1;//作为a元素下标。
int i = 0;//作为b的下标元素。
int count = 1;//记录b已经中有几位字符和a中的字符串相同,当count等于len的时候,就是找到了。
for(i=0;b[i]!='\0';i++)//用b中的元素一个个和a[0]比较。
{
if (b[i]==a[0])
{
sign = i;//发现和a[0]相同,记录相同元素b[i]下标。
for (; (a[j] == b[sign + j])&&(j<=len-1);)//继续比较后继的元素,而j作为a的下标是小于等于len-1.
{
count++;//遇到一个相同的count值就+1.
j++;//继续比a的下一个元素。
}
if (count == len)
{
printf("字符串b中对应的下标分别为: ");
for (int k=0;k<len;k++)
{
printf("%d ",sign+k);
}
break;
}
}
}
if (i == strlen(b) - 1)//要是匹配成功早就break结束了,b中没有a那就只能一个个和a[0]比较直到结束。
{
printf("未找到对应字符串!");
}
return 0;
}
[C题目]搜索大字符串中的小字符串,并打印他们在大字符串中的下标。
于 2021-12-17 23:14:59 首次发布