读书人

tring类型与char类型之间的转换有关问

发布时间: 2013-04-20 19:43:01 作者: rapoo

tring类型与char类型之间的转换问题
#include<iostream>
#include<string>
int main()
{
int i;
string a="abcde";
char ch[]=a.c_str();
for(i=0;a.c_str()[i]!='\0',i++)
cout<<ch[i];
return 0;
}
麻烦各位帮忙看一下,为什么string类型a转化为char类型后再赋值给ch[]就不对了呢?
[解决办法]
a.c_str()返回的只是一个地址。字符串的复制不可以这样。应该这样:

char ch[128] ;
strcpy(ch,a.c_str());
[解决办法]

The member function returns a pointer to a nonmodifiable C string constructed by adding a terminating null element (E(0)) to the controlled sequence. Calling any non-const member function for *this can invalidate the pointer.


string a="abcde";

const char* ch=a.c_str();
[解决办法]
呵呵 学习了
[解决办法]
恩,对,字符串复制不是简单的复制地址,而是复制地址里面的数据,使用strcpy或者strncpy或者memcpy,自己实现也行!

读书人网 >C++

热点推荐