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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)