extern char *strcat(char *dest,char *src);
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
#include "stdafx.h"
#include <iostream>
void mycat(static char a[],char b[])
{
int i=0,j=0;
while(a[i++]!='\0')
{
}
while(b[j++]!='\0')
{
a[i++]=b[j++];
//i++;
}
a[i]='\0';
}
int main()
{
char str1[20]="yanzefeng";
char str2[]={"feng"};
mycat(str1,str2);
printf("%s",str1);
getchar();
return 0;
}
#include "stdafx.h"
#include <assert.h>
#include <iostream>
//将源字符串加const,表明其为输入参数
char * strcat(char *strdest,const char *strsrc)
{
// 后文return address,故不能放在assert断言之后声明address
char *address=strdest;
assert((strdest!=NULL)&&(strsrc!=NULL));//对源地址和目的地址加非0断言
while(*strdest)//当他指向不为空时
{
strdest++;//指针向后移
}
while(*strsrc)
{
*strdest++=*strsrc++;
}//此处可以加语句*strDest=’\0’;无必要
return address;//为了实现链式操作,将目的地址返回
}
int main()
{
char d[20]="yanze"; //数组当函数参数时会自动退化为指针
char *s="feng";
strcat(d,s);
printf("%s",d);
getchar();
return 0;
}