/*
*copyright@nciaebupt 转载请注明出处
*原型:void *memchr(const void *buf, int ch, size_t count);
*用法:#include <string.h>
*功能:从buf所指内存区域的前count个字节查找字符ch。
*说明:当第一次遇到字符ch时停止查找。
* 如果成功,返回指向字符ch的指针;否则返回NULL。
*使用C函数库中的memchr
*/
#include <cstdio>
#include <cstring>
int main(int args,char ** argv)
{
char s[] = "simple string";
char *p = (char *)memchr(s,'n',strlen(s));
if(p != NULL)
printf("find the ch in position : %d\n",p - s + 1);
else printf("not find the ch!\n");
getchar();
return 0;
}
/*
*copyright@nciaebupt 转载请注明出处
*原型:void *memchr(const void *buf, int ch, size_t count);
*用法:#include <string.h>
*功能:从buf所指内存区域的前count个字节查找字符ch。
*说明:当第一次遇到字符ch时停止查找。
* 如果成功,返回指向字符ch的指针;否则返回NULL。
*自己实现memchr
*/
#include <cstdio>
void * _memchr(const void *buf,int ch,size_t count)
{
while(count && (*(unsigned char *)buf != (unsigned char )ch))
{
buf = (unsigned char *)buf + 1;
count--;
}
return (count ? (void *)buf : NULL);
}
int main(int args,char ** argv)
{
char s[] = "simple string";
char *p = (char *)_memchr(s,'n',sizeof(s));
if(p != NULL)
printf("find the ch in position : %d\n",p - s + 1);
else printf("not find the ch!\n");
getchar();
return 0;
}
C函数库中的memchr实现
最新推荐文章于 2024-05-15 03:29:36 发布