#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));
}
转载于:https://blog.51cto.com/survive/1712567