strchr
函数介绍
函数原型:
char*
strchr(
const char*
string,
int c);
函数功能:在字符串中查找指定字符的第一个出现 返回值:如果成功,返回该字符以及其后面的字符,如果失败,则返回 NULL。 代码实例:
char arr[] =
"0asdfgqwqefgf";
char* ret =
strchr(arr,
'f');
cout << ret << endl;
模拟实现
char* my_strchr(
const char*
str,
int c)
{
assert(
str);
char* ret = (
char*)
str;
while (*
str && *
str!=(
char)c)
{
str++;
}
if ((
char)c == *
str)
return (
char *)
str;
return NULL;
}
strrchr
函数介绍
函数原型:
char*
strrchr(
const char*
string,
int c);
函数功能:在字符串中查找指定字符的最后一个出现。 返回值:如果成功,返回该字符以及其后面的字符,如果失败,则返回 NULL。 代码实例:
char arr[] =
"/0asdfgazxcv";
char* ret =
strrchr(arr,
'a');
cout << ret << endl;
模拟实现
char* my_strrchr(
const char*
str,
int c)
{
assert(
str);
char* ret = NULL;
while (*
str)
{
if (*
str == (
char)c)
ret = (
char *)
str;
str++;
}
if ((
char)c == *
str)
ret = (
char *)
str;
return ret;
}
char* my_strrchr1(
const char*
str,
int c)
{
assert(
str);
char* ret = (
char*)
str;
while (*
str)
++
str;
while (*
str != (
char)c && (
str >= ret))
--
str;
if (
str >= ret)
return (
char*)
str;
return NULL;
}
memchr
函数介绍
函数原型:
void *
memchr(
const void *buf,
int c, size_t count );
函数功能:从buf所指内存区域的前count个字节查找字符c。 返回值:如果成功,返回该字符以及其后面的字符,如果失败,则返回 NULL。 代码实例:
char arr[] =
"asdfgazxcv";
void* ret =
memchr(arr,
'd',
6);
printf(
"%s\n", ret);
模拟实现
void* my_memchr(const
void*
str,
int c, size_t
count)
{
assert(
str);
char* ret = (
char*)
str;
while (
count--)
{
if ((
char)c == *ret)
return ret;
else
ret++;
}
return NULL;
}