C语言 编写函数判断B是不是A的子串

编写函数判断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;
}
上一篇:Day 05 基本运算符补充和流程控制


下一篇:redis安装