#本篇博客主要内容为模拟实现四个字符/字符串查找函数!
/*
@避免与库函数冲突,命名为my_strchr;my_strrchr;my_strstr;rmy_strrstr;
@避免与库函数冲突,命名为my_strchr;my_strrchr;my_strstr;rmy_strrstr;
*/
#头文件引用在这里一并标出:
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
#首先实现兄弟函数 strchr 和strrchr
;
/*
模拟实现 strchr 函数
函数原型:char* strchar(char const *str,int ch);
函数功能:
在一个字符串中查找一个字符,返回指向该字符第一次出现位置的指针;
注意事项:
@注意函数的第二个参数是整形值,但是,它包含一个字符值;
@注意函数的返回值是char*,则如果没有找到该字符则必须返回NULL;
代码实现如下;
*/
模拟实现 strchr 函数
函数原型:char* strchar(char const *str,int ch);
函数功能:
在一个字符串中查找一个字符,返回指向该字符第一次出现位置的指针;
注意事项:
@注意函数的第二个参数是整形值,但是,它包含一个字符值;
@注意函数的返回值是char*,则如果没有找到该字符则必须返回NULL;
代码实现如下;
*/
char* my_strchr(char const *str,int ch)
{
assert(str);
while(*str)
{
char *ptr = (char*)str;
if(*ptr == ch)
return ptr ;//注意返回值是char*,如果返回str,注意str的类型
else
str++;
}
return NULL;//如果没找到,则返回值为空;
}
int main()
{
char *str = "abcdef";
char key = 'b';//char key = 'g';
char *ret = my_strchr(str,key);
printf("%s\n",ret);
system("pause");
return 0;
}
#运行结果: