题目:
void my_strcat(char * destination,const char * source); 将source指向的字符串的拷贝,添加到destination指向的字符串的末尾。 注意:使用空格字符来表示字符串的结束。 例如source指向位置,依次保存了字符'a',字符'b',字符空格' ',字符'c',则source指向的字符串为"ab"。 保存为functions.cpp。 遇到异常情况,输出"error";否则不要随意输出,会视为错误。
代码:
#include<stdio.h>
#include<math.h>
int length(char *p)
{
int i=0;
while(p[i]!=' '&&p[i]!='\0')
{
i++;
}
return i;
}
void my_strcat(char * destination,const char * source)
{
char psource[100];
if(destination==NULL||source==NULL)
{
printf("error");
}
else
{
int i=0;
while(source[i]!=' '&&source[i]!='\0')
{
psource[i]=source[i];
i++;
}
psource[i]=' ';
int len_psource=length(psource);
int len_destination=length(destination);
if(abs((int)(destination-source))<len_psource)
{
printf("error");
}
else
{
for(int m=0;m<len_psource;m++)
{
destination[len_destination+m]=psource[m];
}
destination[len_destination+len_psource]=' ';
}
}
}
注意:source destination的结束要同时考虑空格和\0,最后记得在拷贝后加空格