我必须在不使用指针或具有返回值的函数的情况下编写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;
}
答案 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';
}