memcmp()库函数实现

今天用到了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);
}
发布了199 篇原创文章 · 获赞 149 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/zgaoq/article/details/105372627