本文主要是介绍OpenJudge - 18:验证子串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
总时间限制:
1000ms
内存限制:
65536kB
描述
输入两个字符串,验证其中一个串是否为另一个串的子串。
输入
输入两个字符串, 每个字符串占一行,长度不超过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<stdio.h>
#include<string.h>
int main()
{char s1[200],s2[200];int k,m,a = 0,b = 0;gets(s1);gets(s2);if(strlen(s1)<=strlen(s2)){if(strstr(s2,s1)){printf("%s is substring of %s",s1,s2);return 0;}}else if(strlen(s1)>=strlen(s2)){if(strstr(s1,s2)){printf("%s is substring of %s",s2,s1);return 0;}}printf("No substring");return 0;
}
方法二:
#include<stdio.h>
#include<string.h>
int main()
{char s1[200],s2[200];int k,m,a = 0,b = 0;gets(s1);gets(s2);for(int i = 0;i<strlen(s2);i++){k = 0;m = i;if(s1[k] == s2[m]){while(s1[k] == s2[m]&&s1[k] != '\0'){k++;m++;}if(s1[k] == '\0'){a = 1;}}}for(int i = 0;i<strlen(s1);i++){k = 0;m = i;if(s2[k] == s1[m]){while(s2[k] == s1[m]&&s2[k] != '\0'){k++;m++;}if(s2[k] == '\0'){b = 1;}}}if(a == 1)printf("%s is substring of %s",s1,s2);else if(b == 1)printf("%s is substring of %s",s2,s1);elseprintf("No substring");return 0;
}
这篇关于OpenJudge - 18:验证子串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!