strchr() 函数查找字符在指定字符串中从前面开始的第一次出现的位置,如果成功,则返回从该位置到字符串结尾的所有字符,如果失败,则返回 NULL。
strchr()函数原型如下所示:
//char *strchr( const char *string, int c );
下面模拟实现这个库函数:
**//模拟实现strchr (在字符str中查找字符ch第一次出现的位置)**
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char*my_strchr(const char *string,char c)
{
int i = 0;
assert(string);
while (*string!=NULL)
{
if (*string == c)
{
return string;//如果找到,则返回这个字符的地址
}
else
{
string++;
}
}
return NULL;//找完全部,如果没有,则返回NULL
}
int main()
{
char*arr = "abcdefe";
char p = 'e';
char *ret = my_strchr(arr, p);
printf("%s", ret);
/*getchar();*/
system("pause");//防止程序闪退
return 0;
}
原型:char *strrchr( const char *string, char ch );
所在库名:#include
**//模拟实现strrchr**
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strrchr(const char *string, char c)
{
assert(string);
char*pos = 0;//记录相等的位置
while (*string!=NULL)
{
if (*string == c)
{
pos = string;
string++;
}
else
{
string++;
}
}
if (pos == 0)
return NULL;
else
return pos;
}
int main()
{
char*arr = "abcdefegh";
char p = ' i';
char *ret = my_strrchr(arr, p);
if (ret != 0)
{
printf("%s", ret);
}
/*getchar();*/
system("pause");//防止程序闪退
return 0;
}
over