下面是一个使用递归实现的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
,如果sub
是str
的子串,则返回1,否则返回0。通过调用main
函数测试该函数,可以输出是否子串是否存在。