如何在C语言中搜索子串在字符串中的位置?
时间: 2024-09-23 19:13:50 浏览: 87
C语言中查找字符在字符串中出现的位置的方法
在C语言中,可以使用`strstr()`函数来搜索一个子串在另一个字符串中的位置。这个函数在头文件`string.h`中定义,它的原型是`char *strstr(const char *haystack, const char *needle)`。
以下是基本的用法:
```c
#include <string.h>
int main() {
char str[] = "Hello, World!";
char sub_str[] = "World";
char *found = strstr(str, sub_str);
if (found) {
// 如果找到了子串,found将指向子串的第一个字符
int position = found - str; // 计算子串在原字符串中的偏移量
printf("子串 '%s' 的位置是 %d\n", sub_str, position);
} else {
printf("子串未找到\n");
}
return 0;
}
```
如果`strstr()`返回非空指针,说明找到了子串,此时的位置即为`found - str`;如果返回`NULL`,则表示子串不存在于原字符串中。
阅读全文