今天用到了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 (*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);
}