温馨提示×

C语言查找子串 的递归实现方法

小樊
81
2024-07-11 15:05:29
栏目: 编程语言

下面是一个使用递归实现的C语言函数,用于查找字符串中的子串:

#include <stdio.h>
#include <string.h>

int findSubstring(char *str, char *sub)
{
    if (*sub == '\0') {
        return 1;
    }
    
    if (*str == '\0') {
        return 0;
    }
    
    if (*str == *sub) {
        return findSubstring(str + 1, sub + 1);
    } else {
        return findSubstring(str + 1, sub);
    }
}

int main()
{
    char str[] = "hello world";
    char sub[] = "world";
    
    if (findSubstring(str, sub)) {
        printf("'%s' is a substring of '%s'\n", sub, str);
    } else {
        printf("'%s' is not a substring of '%s'\n", sub, str);
    }
    
    return 0;
}

在上面的代码中,findSubstring函数递归地比较字符串str和子串sub,如果substr的子串,则返回1,否则返回0。通过调用main函数测试该函数,可以输出是否子串是否存在。

0