编写一个c函数,传入两个字符串,判断字符串2是否为字符串1的子串
时间: 2024-10-06 14:05:54 浏览: 1
在C语言中,你可以编写一个名为`is_substring`的函数,它接受两个`const char *`类型的指针作为输入参数,然后通过遍历检查来确定第二个字符串是否是第一个字符串的子串。这里是一个简单的实现示例:
```c
#include <stdio.h>
#include <stdbool.h> // 使用布尔类型
bool is_substring(const char* str1, const char* str2) {
if (str1 == NULL || str2 == NULL) { // 检查指针是否为空
return false;
}
size_t len1 = strlen(str1); // 计算字符串1的长度
size_t len2 = strlen(str2);
if (len2 > len1) { // 如果子串长度大于原字符串,不可能是子串
return false;
}
// 从头开始逐个字符比较,如果找到整个子串则返回true
for (size_t i = 0; i <= len1 - len2; i++) {
bool found = true;
for (size_t j = 0; j < len2; j++) {
if (str1[i + j] != str2[j]) { // 如果有不匹配,则跳出循环
found = false;
break;
}
}
if (found) { // 找到整个子串,返回true
return true;
}
}
return false; // 没有找到子串,返回false
}
int main() {
const char* str1 = "Hello World";
const char* str2 = "World";
printf("%s 是否是 %s 的子串: %d\n", str2, str1, is_substring(str1, str2));
return 0;
}
```