编写函数判断B是不是A的子串(假设A的长度大于B的长度,且两个字符串都不超过100个字符)。注意:串中任意个连续的字符组成的子序列称为该串的子串。
主函数中输入两个字符串,并调用上述函数判断,然后在主函数中输出”YES”,或者”NO”。
提示:不能使用库函数。
输入提示信息:“Please input the first str:”
输入格式:"%s"
输入提示信息:“Please input the second str:”
输入格式:"%s"
输出格式:“YES\n” “NO\n”
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
int CmpString(char a[],char b[]);
int main()
{
char str1[N],str2[N];
int x;
printf("Please input the first str:");
scanf("%s",str1);
printf("Please input the second str:");
scanf("%s",str2);
x=CmpString(str1,str2);
if(x==1)
printf("YES\n");
else
printf("NO\n");
return 0;
}
int CmpString(char a[],char b[])
{
int len1,len2;
int i=0,j=0;
len1=strlen(a);
len2=strlen(b);
if(len1<len2)
return -1;
while(i<len1&&j<len2)
{
if(a[i]==b[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(j==len2)
return 1;
else
return -1;
}