编写 strcpy 的替代品

Writing replacement for strcpy

我必须在不使用指针或具有 return 值的函数的情况下编写 strcpy 的替代品... 这怎么可能?!

这是我目前所拥有的,但它使用了 return 个值。

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

为什么要return目的地?由于您使用空括号传递了第一个元素的地址,因此应该在不使用 return 的情况下更改目标数组。

只需删除 return 语句。

函数可以如下所示

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

建议这样写函数:

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