C strchr() 函数

C strchr() 语法

strchr() 是 C 语言 <string.h> 标准库的一个函数,它用于在字符串中查找某个字符 “第一次” 出现的位置。

语法:

strchr(str, ch)

说明:

strchr() 函数接收以下 2 个参数。

  • str(const char*):是一个字符串的指针。
  • ch(int):你要查找的字符。一般以字符形式传入,如 'a'。

strchr(str, ch) 表示在 str 中查找 ch。如果能找到,则返回第一个匹配项的指针(即内存地址);如果未能找到匹配项,则返回 NULL。

提示:

  • strchr 是 “string char” 的缩写。
  • strchr() 是在字符串中某个 “字符” 首次出现的位置,而 strstr() 函数是在字符串中查找某个 “子串” 首次出现的位置。
  • 如果想要查找字符 “最后一次” 出现的位置,我们应该使用 strrchr() 函数。

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() 函数在字符串处理中经常会用到,主要包括以下场景:

  • 查找特定字符是否存在于字符串中。
  • 截取字符串的一部分(从某个字符开始)。
  • 解析字符串时,根据分隔符查找子字符串。
  • 检查文件名是否包含特定的扩展名(结合其他字符串函数)。

上一篇: strtok()

下一篇: strrchr()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号