为strcpy写替换

时间:2015-11-20 00:17:03

标签: c strcpy

我必须在不使用指针或具有返回值的函数的情况下编写strcpy的替换... 怎么可以这样做?!

这是我到目前为止所使用的,但它使用了返回值。

void str_copy(char destination [], char source []) {
    int i;
    for (i = 0; source[i] != '\0'; ++i)
        destination[i] = source[i];
    destination[i] = '\0';
    return destination;
}

3 个答案:

答案 0 :(得分:4)

只需删除return语句。

该功能可以按以下方式查看

void str_copy( char destination [], const char source [] ) {
    size_t i = 0;
    while ( destination[i] = source[i] ) i++;
}

答案 1 :(得分:1)

为什么必须返回目的地?由于您使用空括号传递了第一个元素的地址,因此应该更改目标数组而不返回。

答案 2 :(得分:1)

建议以这种方式编写函数:

void str_copy( char destination [], const char source [] ) 
{
    for(size_t i=0; source[i]; i++ )  destination[i] = source[i];
    destination[i] = '\0';
}