模拟实现 strncpy strncat strncmp

今天练习实现 模拟几个函数

模拟实现strncpy

#include
#include
#include
#include

char *my_strncpy(char *strDest, const char *strSource, int num)
{
	assert(strSource != NULL);
	assert(strDest != NULL);

	for (int i = 0; i < num && strlen(strSource)>0; i++)
	{
		*(strDest + i) = *(strSource + i);
	}
	return strDest;
}

模拟实现strncat

char *my_strncat(char *strDest, const char *strSource, size_t count)
{
	assert(strSource != NULL);
	assert(strDest != NULL);

	int i = strlen(strDest);

	for (int j = 0; j < count && strlen(strSource)>0; j++,i++)
	{
		*(strDest + i) = *(strSource + j);
	}
	return strDest;
}

模拟实现strncmp

int my_strncmp(const char *string1, const char *string2, size_t count)
{
	assert(string1 != NULL);
	assert(string2 != NULL);

	while (count--)
	{
		if (*string1 > *string2)
		{
			return 1;
		}
		else if (*string1 < *string2)
		{
			return -1;
		}
		string1++;
		string2++;
	}
	return 0;
}

你可能感兴趣的:(C语言,C语言)