怎么写
子串位置
描述
输入字符串a和字符串b,并保证b是a的一个子串,输出b在a中第一次出现的位置。
输入
输入两字符串, 并保证b是a的一个子串
#include <string.h>
#include <stdio.h>
#define N 50050
char a[N], b[N];
int main()
{
scanf("%s%s", a, b);
int la = strlen(a), lb = strlen(b);
for(int i = 0; i <= la-lb; ++i)
for(int j = 0; j < lb; ++j)
{
if(a[i+j] != b[j])
break;
if(j == lb - 1)
{
printf("%d", i);
return 0;
}
}
printf("b is not substring of a");
}
供参考:
#include <stdio.h>
int main()
{
char str[80], substr[80];
int i, j, k, flg;
printf("Input string:");
gets(str);
printf("Input substring:");
gets(substr);
for (i = 0, flg = 1; flg && str[i] != '\0'; i++){
for (j = i, k = 0; substr[k] == str[j]; k++, j++)
if (substr[k + 1] == '\0') {
printf("%d", i);
flg = 0;
break;
}
}
if (flg)
printf("No substring %s", substr);
return 0;
}