我正在尝试创建自己的strcat()函数,而不是使用<cstring>库</cstring>来实现它

时间:2015-04-11 19:46:32

标签: c++ strcat

//这是我自己的功能,当我称之为屏幕上没有任何内容时

char * strcat1(char * destination, const char * value)
{
while(*destination != '\0')
    destination++;
while(*value != '\0')
{
    *destination = *value;
    destination++;
    value++;
}
*destination = '\0';

return destination;
}

1 个答案:

答案 0 :(得分:2)

问题是该函数返回指向指针目标指向的字符串的终止零的指针。

正确的功能可以按以下方式查看

char * strcat1(char * destination, const char * value)
{
    char *p = destination;

    while ( *p != '\0' ) ++p;

    while( *p++ = *value++ );

    return destination;
}

您可以按以下方式使用

char string3[30] = "this is done";
char string4[] = " using pointers";

puts( strcat1( string3, string4 ) );
puts( string3 );