使用指针在C中复制字符串

时间:2018-04-11 15:08:22

标签: c string pointers

我是初学程序员。我编写了以下代码,使用指针将一个字符串复制到另一个字符串中。 但我没有得到输出。编译器说分段错误。 我已经一遍又一遍,但无济于事。我无法找到故障,以及如何解决它。 这很难相信,但我已经被困了近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;
}

1 个答案:

答案 0 :(得分:0)

"avanti"是字符串常量,而不是您可以复制到的位置。您可以将其更改为char str1[] = "avanti";这是一个使用字符串常量"avanti"

的值初始化的字符数组