strstr
来自cppreference.com
<tbody>
</tbody>
| 在标头 <string.h> 定义
|
||
char* strstr( const char* str, const char* substr ); |
(1) | |
/*QChar*/* strstr( /*QChar*/* str, const char* substr ); |
(2) | (C23 起) |
1) 查找
substr 所指的空终止字节字符串在 str 所指的空终止字节字符串中的首次出现。不比较空终止字符。2) 等价于 (1) 的泛型函数。令
T 为未限定的 字符对象类型。
- 若
str类型为const T*,则返回类型为const char*。 - 否则,若
str类型为T*,返回类型为char*。 - 否则,行为未定义。
- 若
(strstr) 或使用了函数指针时),则实际函数声明 (1) 即变得可见。若 str 或 substr 不是指向空终止字节字符串的指针,则行为未定义。
参数
| str | - | 指向要检验的空终止字节字符串的指针 |
| substr | - | 指向要查找的空终止字节字符串的指针 |
返回值
指向于 str 中找到的子串首字符的指针,或若找不到该子串则为空指针。若 substr 指向空字符串,则返回 str。
示例
运行此代码
#include <string.h>
#include <stdio.h>
void find_str(char const* str, char const* substr)
{
char const* pos = strstr(str, substr);
pos ? printf("找到字符串 [%s] 位于 [%s] 的位置 %td\n",
substr, str, pos - str)
: printf("没有在 [%s] 中找到 [%s]\n",
str, substr);
}
int main(void)
{
char const* str = "one two three";
find_str(str, "two");
find_str(str, "");
find_str(str, "nine");
find_str(str, "n");
return 0;
}
输出:
找到字符串 [two] 位于 [one two three] 的位置 4
找到字符串 [] 位于 [one two three] 的位置 0
没有在 [one two three] 中找到 [nine]
找到字符串 [n] 位于 [one two three] 的位置 1
引用
- C23 标准(ISO/IEC 9899:2024):
- 7.24.5.7 The strstr function (第 TBD 页)
- C17 标准(ISO/IEC 9899:2018):
- 7.24.5.7 The strstr function (第 269 页)
- C11 标准(ISO/IEC 9899:2011):
- 7.24.5.7 The strstr function (第 369 页)
- C99 标准(ISO/IEC 9899:1999):
- 7.21.5.7 The strstr function (第 332 页)
- C89/C90 标准(ISO/IEC 9899:1990):
- 4.11.5.7 The strstr function
参阅
| 查找字符的首次出现 (函数) | |
| 查找字符的最后一次出现 (函数) | |
strstr 的 C++ 文档
| |