下面是一個使用遞歸實現的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
函數測試該函數,可以輸出是否子串是否存在。