我能够将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
答案 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