c语言怎么判断一个字符串是否有另一个字符串的内容 不能用strpbrk
时间: 2024-09-16 12:03:05 浏览: 28
在C语言中,如果你想检查一个字符串是否包含另一个字符串的内容,但不能使用`strpbrk`函数,可以手动遍历第一个字符串,并逐字符查找第二个字符串是否存在。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 自定义函数,用于判断字符串s1是否包含字符串s2
int contains_string(const char *s1, const char *s2) {
int len_s1 = strlen(s1);
int len_s2 = strlen(s2);
for (int i = 0; i <= len_s1 - len_s2; i++) {
int match = 1;
// 检查s2的所有字符是否连续出现在s1中
for (int j = 0; j < len_s2; j++) {
if (s1[i + j] != s2[j]) {
match = 0;
break;
}
}
if (match) {
return 1; // 找到匹配,返回1表示存在
}
}
return 0; // 没有找到匹配,返回0表示不存在
}
int main() {
char str1[] = "Hello, world!";
char str2[] = "world";
if (contains_string(str1, str2)) {
printf("'%s' contains '%s'\n", str1, str2);
} else {
printf("'%s' does not contain '%s'\n", str1, str2);
}
return 0;
}
```
在这个例子中,我们定义了一个名为`contains_string`的函数,它通过逐个比较两个字符串的对应字符来查找第二个字符串在第一个字符串中的位置。