Locate first occurrence of character in string
# include <string.h> char * strchr (const char * str, int character);
Returns a pointer to the first occurrence of character in the C string str.
上述内容是C++官网对strchr函数的介绍,可以看出strchr函数返回要查找字符第一次出现的位置,如果没有查找成功,则返回空指针。
接下来给出实现strchr函数的源代码:
#define _CRT_SECURE_NO_WARNINGS 1 /* * Copyright (c) 2018, code farmer from sust * All rights reserved. * * 文件名称:MyStrchr.c * 功能:在源字符串中查找某个字符 * * 当前版本:V1.0 * 作者:sustzc * 完成日期:2018年4月22日10:40:34 */ # include <stdio.h> # include <assert.h> /* * 函数名称:MyStrchr * * 函数功能:在源字符串中查找某个字符的位置, * 若查找成功则返回要查找字符第一次出现的位置,反之则返回NULL。 * * 入口参数:src, ch * * 出口参数:NULL or (char *)src * * 返回类型:char * */ char * MyStrchr(const char * src, int ch) { assert(NULL != src); while (('\0' != *src) && (((char)ch) != *src)) { src++; } if (((char)ch) == *src) { return (char *)src; } else { return NULL; } } int main(void) { char * str = "abcddd"; char ch = 0; char * ret = NULL; printf("str: %s\n", str); printf("input character:\n"); assert(1 == scanf("%c", &ch)); ret = MyStrchr(str, ch); if (NULL != ret) { printf("找到了字符%c,其在源字符串中的内容为: %s\n", ch, ret); } else { printf("没找到字符%c\n", ch); } return 0; }
输出结果