如何将string转换成char *?

wangsiyuanoo 2008-12-15 02:57:37
如何将string转换成char *?
注意,不是转换成const char *!!!
所以string.c_str()是错的,对我来说!
...全文
251 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccpaishi 2008-12-15
  • 打赏
  • 举报
回复
2楼是好方法
matrixdwy 2008-12-15
  • 打赏
  • 举报
回复
对啊,要做一次strcpy
否则给你一个char*让你随便改,那么这个string里面的东西不就乱套啦
SearchLife 2008-12-15
  • 打赏
  • 举报
回复
up
bfhtian 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyu637 的回复:]
const_cast <char*>string.c_str()
[/Quote]
up
GreaterHeat 2008-12-15
  • 打赏
  • 举报
回复
去百度或谷歌搜索下吧.
string, CString, char*三者之间的转换资料好多.
owldestiny 2008-12-15
  • 打赏
  • 举报
回复
char* dest[100];
strcpy(dest,str.c_str()),
xinustc 2008-12-15
  • 打赏
  • 举报
回复
char *b=const_cast<char*>(a.c_str());

为什么要弄成char *的呢?难道你想通过非法手段改类的私有成员吗?很遗憾就算强制更改了c_str()的类型也没用,
其实效果就跟strcpy()一样,实际上b指向的位置与string类中指针指向的位置不同,你也不能通过更改b的内容
而更改c_str()所指向的内容
长安宁 2008-12-15
  • 打赏
  • 举报
回复
char *p = (char *)string.begin();
nullah 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyu637 的回复:]
const_cast <char*>string.c_str()
[/Quote]
up
这个方法 呵呵
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 AndrewITBOY 的回复:]
CString str("ABC");
unsigned char *puc = (unsigned char*)str.GetBuffer( str.GetLength() );
[/Quote]
AndrewITBOY 2008-12-15
  • 打赏
  • 举报
回复
CString str("ABC");
unsigned char *puc = (unsigned char*)str.GetBuffer( str.GetLength() );
iory_526 2008-12-15
  • 打赏
  • 举报
回复
自己拷贝一份出来吧
lbh2001 2008-12-15
  • 打赏
  • 举报
回复
实在不行,可以

char str[120] = { '\0' };
strncpy(str, string.c_str(), sizeof(str));
lann64 2008-12-15
  • 打赏
  • 举报
回复
不是const char*,那就再做一次strcpy呗。
wuyu637 2008-12-15
  • 打赏
  • 举报
回复
const_cast<char*>string.c_str()
taodm 2008-12-15
  • 打赏
  • 举报
回复
effective stl item16,自己找了看一下就知道了。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧