SOS:string转换char

gaosonglove 2010-01-06 09:34:35
现在我遇到了一个问题,string 转换char的问题。 
比如:
  string m_string="abcdefg";
char m_char;
怎样把m_string中所有的内容abcdefg全部赋值给m_char? 而不是a赋值给m_char.

具体怎样做?请教高手
...全文
82 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
traceless 2010-01-06
  • 打赏
  • 举报
回复
是不是描叙错误了吧, char *m_char;

char* m_char = new char( m_string.size()+1); //要加上'\0'
paulpeath 2010-01-06
  • 打赏
  • 举报
回复
nick:

 string m_string="abcdefg";
char* m_char = new char( m_string.size() );
strcpy (m_char,m_string.c_str());
pengzhixi 2010-01-06
  • 打赏
  • 举报
回复
另外你应该是要拷贝到char *m_char或者char m_char[10]类似这样的数组里面吧。
pengzhixi 2010-01-06
  • 打赏
  • 举报
回复
先利用c_str函数转成const char*
然后利用strcpy函数
飞天御剑流 2010-01-06
  • 打赏
  • 举报
回复
这是做不到的。m_char只有一个char的大小,无法装下"abcdefg"所有字符。
  • 打赏
  • 举报
回复
MSDN:

string::c_str()


basic_string::c_str
const E *c_str() const;
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.
xwsn007 2010-01-06
  • 打赏
  • 举报
回复
不好意思,有一行敲错了:

char *m_char = new char[n+1];
xwsn007 2010-01-06
  • 打赏
  • 举报
回复
这个准行,我编译运行了:
 

string m_string = "abcdefg";
int n = m_string.size();
char *m_char = new char(n + 1);
strncpy(m_char, m_string.c_str(), n);
m_char[n] = '\0';
...

delete[] m_char; //记得不在需要m_char时,要释放内存哦

cattycat 2010-01-06
  • 打赏
  • 举报
回复
string.c_str()返回const char*类型字符串。
sf_promise 2010-01-06
  • 打赏
  • 举报
回复
string 不能转成char,转成char*

string s="aaaaa";

const char* p=0;
p= s.c_str();

64,413

社区成员

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

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