C语言对比一个字符串是否包含另一个字符串
时间: 2024-10-13 11:15:42 浏览: 22
在C语言中,比较两个字符串是否包含另一个字符串通常有两种方法:
1. **逐字符比较**:
使用`strcmp()`函数可以检查两个字符串是否相等。如果目标字符串(第二个字符串)是第一个字符串(主字符串)的一部分,`strcmp()`会返回0表示相等。例如:
```c
char str1[] = "hello";
char str2[] = "ello"; // 或者 str2[] = "world hello"
if(strcmp(str1, str2) == 0) {
printf("str1 contains str2\n");
} else {
printf("str1 does not contain str2\n");
}
```
2. **循环遍历**:
如果不想使用库函数,也可以通过循环遍历主字符串,并在目标字符串中查找每个字符,直到找到全部匹配。这种方法更底层,示例如下:
```c
#define SIZE 100
char str1[SIZE] = "hello";
char str2[] = "ello";
int index = 0; // 目标字符串的位置
while(index < strlen(str1)) {
if(str1[index] != str2[index]) break;
if(index + strlen(str2) > strlen(str1)) {
printf("str1 contains str2\n");
return;
}
index++;
}
printf("str1 does not contain str2\n");
```
阅读全文