1140:验证子串
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 39133 通过数: 18440
【题目描述】
输入两个字符串,验证其中一个串是否为另一个串的子串。
【输入】
输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。
【输出】
若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)
否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)
否则,输出 No substring。
【输入样例】
abc
dddncabca
【输出样例】
abc is substring of dddncabca
#include<iostream> #include<cmath> char a[325],b[325],tmp[325]; #include<cstring> using namespace std; int main() { int i,t,k,n=0,m=0,j,ddd=0; char c; scanf("%s",a); scanf("%s",b); i=strlen(a); j=strlen(b); if(i<j){//我把长的放在a中 strcpy(tmp,b); strcpy(b,a); strcpy(a,tmp); t=i; i=j; j=t; } { for(m=0;m<i;m++)//从第一个字符,开始和短的第一个字符比较 { if(a[m]==b[0])//如果相等 { for(n=0,k=m;n<j;n++,k++)比较下面的是不是相等 if(a[k]!=b[n])break; if(n==j){//如果是子串 printf("%s is substring of %s",b,a); ddd=1; }//标志位置1 } } } if(ddd==0)printf("No substring"); return 0; }