将const char *数组中的某些数据部分复制到另一个const char *数组中

时间:2014-09-19 11:49:08

标签: c++ string visual-c++

我能够将char数组中的一些数据复制到循环中的另一个char数组中。例如,我想提取并显示char数组的每2个字符到b。但它不能与const char *一起使用。任何人都可以建议我为什么不与const char *合作。实际上,我需要使用const char*

执行此操作
char array[] = "HelloRamBilasj";

cout << "total length of array buffer:" << strlen(array) << endl << endl;
int totalGoLength= strlen(array)/2 ; //divide by number of elements you want to display in one loop

cout << "required length of alice buffer:" << totalGoLength << endl << endl;

int oneGoCount=1;
int start=0;//starting index to copy
int next=2;//end index to copy

while( oneGoCount <= totalGoLength) {

    char *b = new char[100];
    // now copy the elemet into b.
    std::copy(array+start, array+next, b);

    for (int i = 0; i < 2; ++i){
        cout<< "the value of b is"<<b[i]<<endl;

    }
    cout<<endl<<endl;

    delete [] b;//erase the contents of b.
    start=start+2;//increment the next index
    next=next+2;//increment the next index

    oneGoCount=oneGoCount+1;

}//end of while

2 个答案:

答案 0 :(得分:7)

您无法更改const char*指向的数据,因为它指向的数据为const

答案 1 :(得分:0)

You can copy from a const char *, but not into a const char *.   

根据规则,使用const限定符声明的变量不能修改
当你复制到这样一个变量,然后你试图修改
该内存位置的内容因此您将得到编译时错误,如下所示:

assignment of read-only location