#include <stdio.h>
#include <string.h>
int main()
{
char str1[10001], str2[10001];
char c;
int len1 = 0, len2 = 0;
// 读取第一个字符串
//因为字符串中可能含有空白符 所以输入不用scanf 而是getchar
while ((c = getchar()) != '\n')
{
str1[len1++] = c;//[]中用len1控制字符串长度
}
str1[len1] = '\0';//'\0'作为字符串结束的标志
// 读取第二个字符串
while ((c = getchar()) != '\n')
{
str2[len2++] = c;
}
str2[len2] = '\0';
int i, j;
int flag = 0;
for (i = 0; i <= len2 - len1; i++) //i不能大于len2-len1是因为要确保第二个字符串第i+j位之后(包括第i+j位)的位数大于等于第一个字符串的长度
{
for (j = 0; j < len1; j++)
{
if (str1[j] != str2[i + j])//固定第一个字符串的一位,与第二个字符串的各个位对比
{
break;
}
}
if (j == len1)
{
flag = 1;
printf("%d ", i);
}
}
if (i == len2 - len1 + 1 && flag == 0)
{
printf("-1");
}
return 0;
}
字符串比对
于 2024-04-21 20:37:39 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)