【问题描述】输入两个字符串str1和str2,计算str2在str1中第一次出现的位置(从0开始计算)。输出位置结果。str1和str2中都可能包含空格,两个字符串长度都不会超过500。
【输入形式】两个字符串,以'\n'隔开。
【输出形式】一个数字。
【样例输入】
how are you!
are
【样例输出】
4
代码:
#include<stdio.h>
#include<string.h>
int main()
{
char str1[500], str2[500];
gets(str1);
gets(str2); //输入两个字符串
for (int i = 0; str1[i] != '\0';i++) //循环确定第一个相同的字母在字符串1中的位置
{
int j = 0;
for (j = 0; str1[ i + j ] != '\0' && str2[j] != '\0'; j++) //保证str2与str1中完全对应相同
{
if(str1[ i + j ] != str2[j]) //有字母不同,跳出
break;
}
if(str2[j] == '\0') //str2读完
printf("%d", i); //输出i
}
return 0;
}