c语言子串判断
时间: 2023-08-16 15:03:37 浏览: 184
在 C 语言中,可以使用标准库函数 `strstr` 来判断一个字符串是否为另一个字符串的子串。函数原型如下:
```c
char *strstr(const char *haystack, const char *needle);
```
该函数的作用是在字符串 `haystack` 中查找字符串 `needle` 的第一次出现位置,并将该位置的指针返回。如果未找到,则返回 `NULL`。例如:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "hello, world";
char sub_str[] = "world";
char *p = strstr(str, sub_str);
if (p) {
printf("%s is a substring of %s, at position %ld\n", sub_str, str, p - str);
} else {
printf("%s is not a substring of %s\n", sub_str, str);
}
return 0;
}
```
输出结果为:
```
world is a substring of hello, world, at position 7
```
如果要判断一个字符串是否为另一个字符串的子串,只需要将其作为第二个参数传给 `strstr` 函数即可。例如,要判断字符串 `str` 是否包含子串 `sub_str`,可以这样写:
```c
if (strstr(str, sub_str)) {
printf("%s is a substring of %s\n", sub_str, str);
} else {
printf("%s is not a substring of %s\n", sub_str, str);
}
```
需要注意的是,`strstr` 函数是区分大小写的。如果需要进行不区分大小写的子串查找,可以使用其他的库函数或者自己编写查找函数实现。
阅读全文