C语言strchr()函数(字符串中查找子字符)

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言strchr()函数(字符串中查找子字符)相关的知识,希望对你有一定的参考价值。

头文件:C 标准库 - <string.h>

描述

C 库函数 char *strchr(const char *str, int c) 在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。

声明

下面是 strchr() 函数的声明。

char *strchr(const char *str, int c)

参数

  • str – 要被检索的 C 字符串。
  • c – 在 str 中要搜索的字符。

返回值

该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL。

实例

实例1

下面的实例演示了 strchr() 函数的用法。

#include <stdio.h>
#include <string.h>

int main ()

   const char str[] = "http://www.runoob.com";
   const char ch = '.';
   char *ret;

   ret = strchr(str, ch);

   printf("|%c| 之后的字符串是 - |%s|\\n", ch, ret);
   
   return(0);

|.| 之后的字符串是 - |.runoob.com|

实例2

以下代码将 st 指针指向的字符串在换行的地方加入文本结束字符,else 将多余的换行符消耗掉:

find = strchr(st, '\\n');  //查找换行符
if (find)  //如果地址不是NULL
    *find = '\\0';  //在此处放置一个空字符
else
    while (getchar() != '\\n')
        continue;

不知道实际怎么操作。。。具体应用场景?

#include <stdio.h>
#include <string.h>

int main()

    char st[] = "sdf\\nssdf";
    char* find;
    find = strchr(st, '\\n');  //查找换行符
    if (find)  //如果地址不是NULL
        *find = '\\0';  //在此处放置一个空字符
    else
        while (getchar() != '\\n')
            continue;

	return(0);

以上是关于C语言strchr()函数(字符串中查找子字符)的主要内容,如果未能解决你的问题,请参考以下文章

系统函数C字符串的实现(11):strchr

字符串中查找子串

重写C语言string.c的部分函数

C语言中对字符串进行操作的标准库函数都有哪些

C 字符/字符串经常使用函数

c中常用的字符串操作