模拟实现strncat函数

我们先了解一下这个函数

1.假如arr2有5个数,我们想追加3个数,它会在arr' \0 '开始追加3个数,追加完之后自动加上'\0'

2.假如arr2有3个数,我们想追加5个数, 它只会追加3个,然后自动加上'\0'

char* my_strncat(char* str1, char* str2, size_t k)
{
	assert(str1 && str2);
	char* ret = str1;
	while (*str1 != '\0')//先找到str1的\0,从这开始追加
	{
		str1++;
	}
	while (k && (*str1 = *str2))
	{
		k--;
		str1++;
		str2++;
	}
	*str1 = '\0';//自动在后面追加上'\0'
	return ret;
}
int main()
{
	char arr1[20] = "abc\0xxxxxxxxxxx";
	char arr2[] = "defghi";
	char* ret = my_strncat(arr1, arr2, 10);
	return 0;
}

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