1.memchr检测的是一段内存,strchr检测的是一个字符串 如果一段内存中有0x0的话,显然不能用strchr去查找的。建议看看两个函数的原型
2.strchr会停在\0,memchr不会,看接口就明白了:
NAME
memchr, memrchr - scan memory for a character
SYNOPSIS
#include <string.h>
void *memchr(const void *s, int c, size_t n);
void *memrchr(const void *s, int c, size_t n);
NAME
strchr, strrchr - locate character in string
SYNOPSIS
#include <string.h>
char *strchr(const char *s, int c);
char *strrchr(const char *s, int c);
3.mem*系针对字节,str*系针对字符.是2个概念
4.mem 的效率高
5.类似strcpy memcpy
6.memchar针对与内存操作,shtchr只能是字符串操作