函数strAppend(d,s)将以0结尾的字符串s附加到以0结尾的字符串d之后。请实现该函数,使得后续程序可以正确运行。请注意为目标字符串分配足够的内存空间,以免溢出。注意不能使用原生的strcat()函数。
示例:指针d所指向的字符串"hello"在附加字符串"world"后变为"helloworld"
函数接口定义:
void strAppend(char *d, const char* s);
裁判测试程序样例:
#include <stdio.h>
//在此处定义strAppend()函数
int main()
{
char s1[1024];
char s2[1024];
gets(s1);
gets(s2);
strAppend(s1,s2);
printf("%s",s1);
return 0;
}
提供两种方法供君参考
数组
void strAppend(char* d, const char* s)
{
int i, j;
for ( i = 0; d[i]!='\0'; i++)
{
}//历遍b数组,得到b有效片段长度
for ( j = 0; s[j]!='\0'; j++)
{
d[i+j] = s[j];//连接
}
d[i+j] = '\0';//千万记得在最后手动加终止符,不然字符串不知道在哪结束
}
指针
void strAppend(char *d, const char* s)
{
char *temp = d;
while(*d != '\0')
{
d++;//也是得到指针d的有用地址
}
while((*d++ = *s++) != '\0')
{
;//历遍连接
}
return temp;
}