模拟实现strncpy,strncat,strncmp

模拟实现strncpy

char * my_strncpy(char *dest, const char *src, int count)
{
	char *ret = dest;
	assert(dest&&src);
	while (count--)
	{
		if (*src=='\0')//如果源头字符串结束 全部追加0
		{
			*dest = '\0';
			dest++;
		}
		else
		{
			*dest = *src;
			dest++;
			src++;
		}
	}
	return ret;
}

模拟实现strncat

char * my_strncat(char *dest, const char *src, int count)
{
	char *ret = dest;
	assert(dest&&src);
	while (*dest)//找到目标字符串的停止符
	{
		dest++;
	}
	while (count--&&*src)//如果源字符串结束追加结束
	{
		*dest = *src;
		dest++;
		src++;
	}
	*dest = '\0';
	return dest;
}

模拟实现strncmp

int my_strncmp(const char *arr1,const char *arr2,int count)
{
	assert(arr1);
	assert(arr2);
	while(count&&(*arr1 == *arr2))
	{
		if (*arr1 == '\0')
		{
			return 0;
		}
		arr1++;
		arr2++;
		count--;
	}
		return (*arr1 - *arr2);
}

猜你喜欢

转载自blog.csdn.net/qq1910084514/article/details/80412886
今日推荐