模拟实现strchr()
原型:char *strchr( const char *string, char ch );
所在库名:#include <string.h>
功能:找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是NULL)
代码如下:
char *My_strchr(char const *arr, char ch)
{
assert(arr);
while (*arr != '\0')
{
if (*arr == ch)
{
return arr;
}
arr++;
}
return NULL;
}
测试函数:
#include<stdio.h>
#include<windows.h>
#include<assert.h>
int main()
{
char arr[] = "abccd";
printf("%s\n", My_strchr(arr, 'c'));
system("pause");
return 0;
}
结果:
注意:注意返回字符串包含我们ch字符。
模拟实现strrchr()
原型:char *strrchr( const char *string, char ch );
所在库名:#include <string.h>
功能:找出在字符串str中最后一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是NULL)
和上面strchr不同之处就在于返回的位置不同!
代码如下:
char const *My_strrchr(char const *arr, char ch)
{
char *pos = 0;
assert(arr);
while (*arr)
{
if (*arr == ch)
{
pos = arr;
}
arr++;
}
if (pos != 0)
return pos;
else
return NULL;
}
测试函数:
#include<stdio.h>
#include<windows.h>
#include<assert.h>
int main()
{
char arr[] = "abcccd";
printf("%s\n",My_strrchr(arr, 'c'));
system("pause");
return 0;
}
结果:
看!这里返回的是最后一次出现C的位置