3. 首先使用循环计算str1的长度,接着在str1‘\0’处开始复制str2的内容,遇到‘\0’结束,但是,不能忘了新字符串末尾补充‘\0’;
4. 如果str1字符数组长度不够,要输出错误提示。
程序代码:
#include <stdio.h>
char* mystrcat( char* restrict dest, size_t destsize, const char* restrict src )
{
char* p = dest;
for( ; *p; ++p );
for( ; p<dest+destsize-1 && *src; )
*p++ = *src++;
*p = '\0';
return *src ? NULL : dest;
}
int main( void )
{
{
char a[9] = "abc";
char b[] = "12345";
if( mystrcat(a,sizeof a,b) )
printf( "结果是: %s\n", a );
else
puts( "空间不足" );
}
{
char a[8] = "abc";
char b[] = "12345";
if( mystrcat(a,sizeof a,b) )
printf( "结果是: %s\n", a );
else
puts( "空间不足" );
}
}