欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > strstr!!!

strstr!!!

2025/5/24 21:30:54 来源:https://blog.csdn.net/2301_79344709/article/details/146447502  浏览:    关键词:strstr!!!

`strstr` 是 C 语言中的一个标准库函数,用于在一个字符串中查找子串。它的原型定义在 `string.h` 头文件中。`strstr` 函数

返回指向子串首次出现位置的指针,如果未找到子串,则返回 `NULL`。

### 函数原型

```c
char *strstr(const char *haystack, const char *needle);
```

**参数**:
- `haystack`:要搜索的源字符串。
- `needle`:要在 `haystack` 中搜索的子串。

**返回值**:
- 返回一个指向 `haystack` 中 `needle` 第一次出现位置的指针。
- 如果 `needle` 是空字符串,`strstr` 返回 `haystack` 的指针。
- 如果 `needle` 未在 `haystack` 中找到,返回 `NULL`。

### 示例

下面是一个使用 `strstr` 的示例程序,演示了如何在一个字符串中查找子串:

#include <stdio.h>
#include <string.h>int main() {char str[] = "Hello, World! This is a test string.";char substr1[] = "World";char substr2[] = "test";char substr3[] = "example";// 查找子串 "World"char *ptr1 = strstr(str, substr1);if (ptr1 != NULL) {printf("Found '%s' in string at position %ld\n", substr1, ptr1 - str);} else {printf("'%s' not found in string\n", substr1);}// 查找子串 "test"char *ptr2 = strstr(str, substr2);if (ptr2 != NULL) {printf("Found '%s' in string at position %ld\n", substr2, ptr2 - str);} else {printf("'%s' not found in string\n", substr2);}// 查找子串 "example"char *ptr3 = strstr(str, substr3);if (ptr3 != NULL) {printf("Found '%s' in string at position %ld\n", substr3, ptr3 - str);} else {printf("'%s' not found in string\n", substr3);}return 0;
}

### 输出

Found 'World' in string at position 7
Found 'test' in string at position 19
'example' not found in string

### 解释

1. **查找 "World"**:
   - `strstr(str, substr1)` 返回指向 `str` 中 `"World"` 首次出现位置的指针。
   - `ptr1 - str` 计算 `"World"` 在 `str` 中的起始位置。

2. **查找 "test"**:
   - `strstr(str, substr2)` 返回指向 `str` 中 `"test"` 首次出现位置的指针。
   - `ptr2 - str` 计算 `"test"` 在 `str` 中的起始位置。

3. **查找 "example"**:
   - `strstr(str, substr3)` 未找到 `"example"`,返回 `NULL`。

这个示例展示了如何使用 `strstr` 函数在一个字符串中查找子串,并输出子串的位置或未找到的信息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词