题目
输入两个字符串,验证其中一个串是否为另一个串的子串。
输入
输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。
输出
若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)
否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)
否则,输出 No substring。
样例输入
abc
dddncabca
样例输出
abc is substring of dddncabca
出错地方:cmp函数中俩数组的角标不一样(刚开始都用的i),错用成if(j=q-1)
上代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxn 205
char cmp(char s[],char l[],int k,int q)
{
int i,w=0;
for(i=0;i<=k-q+1;i++)
{
if(l[i]==s[0])
{
int j;
for(j=0,w=i;j<q;j++,w++)
{
if(l[w]!=s[j])
break;
if(j==q-1)
{
printf("%s is substring of %s ",s,l);
exit(0);
}
}
}
}
printf("No substring");
return 0 ;
}
int main()
{
char a[maxn],b[maxn];
gets(a);
gets(b);
if (strlen(a)<=strlen(b))
{
cmp(a,b,strlen(b),strlen(a));
}
else
{
cmp(b,a,strlen(a),strlen(b));
}
return 0;
}