C strchr() 语法
strchr() 是 C 语言 <string.h> 标准库的一个函数,它用于在字符串中查找某个字符 “第一次” 出现的位置。
语法:
strchr(str, ch)说明:
strchr() 函数接收以下 2 个参数。
str(const char*):是一个字符串的指针。ch(int):你要查找的字符。一般以字符形式传入,如 'a'。
strchr(str, ch) 表示在 str 中查找 ch。如果能找到,则返回第一个匹配项的指针(即内存地址);如果未能找到匹配项,则返回 NULL。
提示:
C strchr() 摘要
| 使用频率 | 高 |
|---|---|
| 修改字符串 | 否 |
| 官方文档 | 查看 |
C strchr() 示例
接下来,我们通过几个简单的例子来讲解一下 C strchr() 函数是如何使用的。
示例 1:strchr() 基本用法
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "JavaScript";
char ch = 'a';
// 在 str 中查找 ch
char* p = strchr(str, ch);
// 如果找到匹配项,则打印匹配项位置
if (p != NULL) {
printf("匹配项位置:%td", p - str);
} else {
printf("未能找到匹配项");
}
return 0;
}运行结果如下。
匹配项位置:1分析:
虽然 "JavaScript" 中包含了 2 个 'a' 字符,但 strchr() 函数只会返回 'a' 首次出现的指针。然后我们使用 “'a' 首次出现的指针” 减去 “整个字符串的指针”,就可以得到该字符在字符串中首次出现的下标位置了(下标从 0 开始)。
示例 2:strchr() 查找不存在的字符
#include <stdio.h>
#include <string.h>
int main(void)
{
const char str[] = "Hello World";
char ch = 'a';
char* ptr;
ptr = strchr(str, ch);
if (ptr != NULL) {
printf("匹配字符出现的位置:%td\n", ptr - str);
} else {
printf("未能找到匹配字符");
}
return 0;
}运行结果如下。
未能找到匹配字符分析:
当要查找的字符在字符串中不存在时,strchr() 函数会返回 NULL。其中,我们可以通过检查返回的指针是否为 NULL 来判断字符是否找到。
strchr() 的应用场景
在实际开发中,strchr() 函数在字符串处理中经常会用到,主要包括以下场景:
- 查找特定字符是否存在于字符串中。
- 截取字符串的一部分(从某个字符开始)。
- 解析字符串时,根据分隔符查找子字符串。
- 检查文件名是否包含特定的扩展名(结合其他字符串函数)。
