今天用到了memcpy()库函数,自己实现了一个,如下:
int memcmp(const void *str1, const void *str2, size_t count) {
assert((NULL != str1) && (NULL != str2));
const char *pstr1 = (const char*)str1;
const char *pstr2 = (const char*)str2;
while (count--) {
if (*pstr1 && *pstr2 && (*pstr1 == *pstr2)) {
continue;
} else {
break;
}
}
return return (*pstr1 - *pstr2);
}
是否有更好的实现方式?请大师指点
本人是参考了strcmp()的函数实现的,strcmp()的函数实现如下:
int stcmp(const char *str1, const char *str2) {
assert((nullptr != str1) && (nullptr != str2));
while (*str1 && *str2 && (*str1 == *str2)) {
str1++;
str2++;
}
return (*str1 - *str2);
}