C语言函数_string.h 之 内存search函数memchr
2015-05-20 01:32
495 查看
memchr
原型: extern void *memchr(const void *ptr, int value, size_t count);
功能: 从ptr所指向的内存开始的前count个字节中查找字符value,如果查找成功则返回字符value首次出现的位置(指针),否则返回NULL。
其中ptr会被解析成char *类型,value会被解析成unsigned char类型。
memchr函数在C++语言里有两个重载,分别是:
const void * memchr ( const void * ptr, int value, size_t count );
void * memchr ( void * ptr, int value, size_t count );
下面来看看memchr函数的C语言实现
extern void *memchr(const void *ptr, int value, size_t count);
void *memchr( const void *ptr, int value, size_t count)
{
assert( ptr != NULL);
while( count && (*(unsigned char *)ptr != (unsigned char )value))
{
ptr = (unsigned char *)ptr + 1;
count --;
}
return (count ? (void *)ptr : NULL);
}
相关函数:
strstr();
原型:char *strstr(const char *str1, const char *str2);
功能:返回一个指针,指向字符串str2首次出现于字符串str1的位置,如果没找到则返回NULL。
原型: extern void *memchr(const void *ptr, int value, size_t count);
功能: 从ptr所指向的内存开始的前count个字节中查找字符value,如果查找成功则返回字符value首次出现的位置(指针),否则返回NULL。
其中ptr会被解析成char *类型,value会被解析成unsigned char类型。
memchr函数在C++语言里有两个重载,分别是:
const void * memchr ( const void * ptr, int value, size_t count );
void * memchr ( void * ptr, int value, size_t count );
下面来看看memchr函数的C语言实现
extern void *memchr(const void *ptr, int value, size_t count);
void *memchr( const void *ptr, int value, size_t count)
{
assert( ptr != NULL);
while( count && (*(unsigned char *)ptr != (unsigned char )value))
{
ptr = (unsigned char *)ptr + 1;
count --;
}
return (count ? (void *)ptr : NULL);
}
相关函数:
strstr();
原型:char *strstr(const char *str1, const char *str2);
功能:返回一个指针,指向字符串str2首次出现于字符串str1的位置,如果没找到则返回NULL。
相关文章推荐
- C语言函数string.h 之 内存copy函数memcpy
- C语言函数_string.h 之 内存comparison函数memcmp
- C语言函数_string.h 之 内存copy函数memmove
- C语言函数_string.h 之 内存填充函数memset
- 走进C标准库(6)——"string.h"中函数的实现memchr
- golang基础-数组、切片创建_内存_底层实现_修改值_拷贝_循环、string与切片
- 使用String.intern减少内存使用
- Java内存分配和String类型的深度解析
- 类型安全且自动管理内存的返回 std::string 的 sprintf 实现
- python 在内存中读写:StringIO / BytesIO
- [C++]使用std::stringstream小心内存,适时清空缓冲。
- vb string类型变量在内存的表示?
- 自己实现的C语言string.h 头文件的字符串函数与几个内存操作函数
- 重写,string创建内存问题
- Jackson 触发的String.intern() bug, 导致内存持续增加,JVM-Java内存泄漏
- Mysql: Connect/C++ 使用过程中发现返回 std::string 造成的内存泄露
- String类型内存转换,你明白为什么吗?
- 关于创建String对象过程的内存分配
- 标准C++类std::string的 内存共享和Copy-On-Write技术
- 标准C++类std::string的内存共享和Copy-On-Write技术