[置顶] 【C语言】 实现strncat

#include <stdio.h>
#include <assert.h>

char *my_strncat(char *strDest,const char *strSrc,int i)
{
	char *start = strDest;  //为了将这个函数的返回值作为其他函数的参数,即链式访问
	assert((strDest != NULL) && (strSrc != NULL));
	while(*strDest++)
		;    //直到遇到\0跳出while循环
		strDest--;  //由于while循环条件中最后一次判断指向\0后不满足还向后加了一次,所以需要减回来
	while(i--)  
		if(!(*strDest++ = *strSrc++))//当if中为真时,执行下面的语句
			return (start);
	*strDest = '\0';
	return(start);
}

void main()
{
       char strDest[20]={"i love"};
       char strSrc[10]={" China"};
	   int i = 4;
       printf("%s\n",my_strncat(strDest,strSrc,i));
}


本文出自 “Vs吕小布” 博客,谢绝转载!

你可能感兴趣的:([置顶] 【C语言】 实现strncat)