我是初学程序员。我编写了以下代码,使用指针将一个字符串复制到另一个字符串中。 但我没有得到输出。编译器说分段错误。 我已经一遍又一遍,但无济于事。我无法找到故障,以及如何解决它。 这很难相信,但我已经被困了近2个小时了。 非常感谢任何帮助。
#include<stdio.h>
char *copy(char*, char*);
int main() {
char *str1 = "avanti";
char *str2 = "ujj";
printf("%s\n", str1);
char *result = copy(str1, str2);
printf("%s", result);
}
char *copy(char *str1, char *str2){
int i=0;
while (*(str2+i) != '\0') {
*(str1+i) = *(str2+i);
i++;
}
*(str1+i) = '\0';
return str1;
}
答案 0 :(得分:0)
"avanti"
是字符串常量,而不是您可以复制到的位置。您可以将其更改为char str1[] = "avanti";
这是一个使用字符串常量"avanti"