将char存储到指针值时的运行时错误

时间:2014-03-15 07:51:50

标签: c++

问题出现在第15和第16行 我无法将char存入 指向字符串的指针。 问题与给出的问题相同 我的书。我需要改变我的 编译器开发c ++? 请帮助。

#include<iostream>
#include<conio.h>
using namespace std;
void reverse(char *str)
{
    char *end=str;
    char *beg=str;
    char temp;
    while(*end)
    {
        end++;
    }
    end--;
    while(beg<end)
    {
        cout<<*beg<<" , "<<*end<<endl;
        temp=*beg;
        *beg=*end;
        *end=temp;
        beg++;
        end--;
    }
    cout<<str;
}

int main()
{
    char *str="saurabh";
    reverse(str);
    getch();
    return 0;
}

2 个答案:

答案 0 :(得分:1)

char *str="saurabh";

您无法操纵"saurabh"因为它是文字的。

为此,您应该将其复制到char[]

实施例,

char arr[20];
char *ptr = "Data";

strcpy(arr,ptr);

答案 1 :(得分:0)

我知道您可能需要反向实现自己,但是您可以使用std实现进行测试:

std::string s("abc");
std::reverse(s.begin(), s.end());