模拟实现strncmp函数

int my_strncmp(const char* str1, const char* str2, size_t k)
{
	assert(str1 && str2);
	while (k && (*str1 == *str2))
	{
		if (*str1 == '\0')//当str1等于'\0',就说明str1等于str2(因为相等才能进入while),直            
                         //接返回0
		{
			return 0;
		}
		str1++;
		str2++;
		k--;
	}
	if (k == 0)//如果while循环出来了,就说明k等于0或者str1不等于srtr2了,直接判断就好了
	{
		return 0;
	}
	if (*str1 < *str2)
	{
		return -1;
	}
	else
	{
		return 1;
	}
}
int main()
{
	char arr1[] = "abcde";
	char arr2[] = "abcdf";
	int ret = my_strncmp(arr1, arr2, 5);
	printf("%d ", ret);
	return 0;
}

你可能感兴趣的:(认识函数,前端,linux)