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,自己实现也行!