C 库函数 - strstr()
描述
C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 \0。
strstr() 是 C 标准库中的一个字符串处理函数,用于在一个字符串中查找子字符串的第一次出现位置。
声明
下面是 strstr() 函数的声明。
char *strstr(const char *haystack, const char *needle);
strstr() 函数用于在字符串 haystack 中查找子字符串 needle 的第一次出现位置。如果找到,则返回指向该位置的指针;如果未找到,则返回 NULL。
参数
- haystack -- 要搜索的主字符串。
- needle -- 要查找的子字符串。
返回值
返回指向 haystack 中第一次出现 needle 的位置的指针。如果 needle 未在 haystack 中找到,则返回 NULL。
实例
下面的实例演示了 strstr() 函数的用法。
实例 1
#include <stdio.h>
#include <string.h>
int main()
{
const char haystack[20] = "RUNOOB";
const char needle[10] = "NOOB";
char *ret;
ret = strstr(haystack, needle);
printf("子字符串是: %s\n", ret);
return(0);
}
让我们编译并运行上面的程序,这将产生以下结果:
子字符串是: NOOB
实例 2
#include <stdio.h>
#include <string.h>
int main() {
const char *haystack = "Hello, world! This is a test string.";
const char *needle = "world";
// 在 haystack 中查找 needle
char *result = strstr(haystack, needle);
if (result != NULL) {
printf("Substring found: %s\n", result);
} else {
printf("Substring not found.\n");
}
return 0;
}
#include <string.h>
int main() {
const char *haystack = "Hello, world! This is a test string.";
const char *needle = "world";
// 在 haystack 中查找 needle
char *result = strstr(haystack, needle);
if (result != NULL) {
printf("Substring found: %s\n", result);
} else {
printf("Substring not found.\n");
}
return 0;
}
代码说明:
strstr()
函数从haystack
的开头开始查找needle
,直到找到匹配的子字符串或到达haystack
的末尾。如果
needle
是空字符串(""
),strstr()
会返回haystack
的起始地址。strstr()
是区分大小写的。如果需要不区分大小写的查找,可以使用strcasestr()
(非标准函数,可能需要特定库支持)。
输出结果:
Substring found: world! This is a test string.
点我分享笔记