c ++字符串反向错误

时间:2013-07-13 15:34:54

标签: c++ pointers reverse

大家!

我正在编写一个简单的char *字符串反向。当我将输入数组初始化为指针时,我在行src[k] = src[n - k];中写入访问时遇到错误:char * input =“string”。它是固定的,当我把:char input [] =“string”;这对我来说非常有趣,为什么它不能用于指针。非常感谢!
这是我的代码:

void reverse(char* src) {
    if (src == NULL) {
        return;
    }
    size_t n = strlen(src) - 1;
    char swap;
    for (int k = 0; k <= n/2; k++) {
        swap = src[k];
        src[k] = src[n - k];
        src[n - k] = swap;
    }
    src[n + 1] = '\0';
}

1 个答案:

答案 0 :(得分:4)

它不适用于指针,因为指针指向文字"string"。字符串文字不可修改。当您使用数组时,文字将被复制到数组中,该数组是可修改的。