#include<stdio.h>
#include<string.h>
int main()
{
char a[200],s[200];
gets(a),gets(s);
int k,i,j=0,b=0,l1=strlen(a),l2=strlen(s);
if(l1<l2)
{
for(i=0;i<l2;i++)
{
if(a[j]==s[i])
{
for(k=1;k<l1;k++)
{
if(a[j+k]==s[i+k])
{
b=1;
}
else
{
b=0;
break;
}
}
}
if(b==1) break;
}
if(b==1) printf("%s is substring of %s",a,s);
else printf("No substring");
}
if(l1>l2)
{
for(i=0;i<l1;i++)
{
if(s[j]==a[i])
{
for(k=1;k<l2;k++)
{
if(s[j+k]==a[i+k])
{
b=1;
}
else
{
b=0;
break;
}
}
}
if(b==1) break;
}
if(b==1) printf("%s is substring of %s",s,a);
else printf("No substring");
}
if(l1==l2) printf("%s is substring of %s",s,a);
}
输入两个字符串,验证其中一个串是否为另一个串的子串。
输入格式
输入两个字符串, 每个字符串占一行,长度不超过 200200 且不含空格。
输出格式
若第一个串 s_1s
1
是第二个串 s_2s
2
的子串,则输出"(s1) is substring of (s2)";
否则,若第二个串 s2是第一个串s1的子串,输出"(s2) is substring of (s1)";
否则,输出"No substring"。
Sample Input
abc
dddncabca
Sample Output
abc is substring of dddncabca
else if(l1==l2)
{
if(strcmp(a,s)==0)
printf("%s is substring of %s",s,a);
else
printf("No substring");
}
}
#include <stdio.h>
#define N 200
// Return 1 if s2 is substring of s2, otherwise return 0
int issubstr(const char *s1, const char *s2)
{
while (*s1)
{
const char *p = s1;
const char *q = s2;
while (*p && *q && *p == *q)
{
p++;
q++;
}
if (*q == '\0')
return 1;
s1++;
}
return 0;
}
int main()
{
char s1[N], s2[N];
scanf("%s%s", s1, s2);
if (issubstr(s1, s2))
printf("%s is substring of %s\n", s2, s1);
else if (issubstr(s2, s1))
printf("%s is substring of %s\n", s1, s2);
else
printf("No substring\n");
return 0;
}