怎样把string转换成char*&?
如何将string类型的变量传递给函数getName(char *&str)?
问题点数:20、回复次数:11Top
1 楼hollysky(爱神)回复于 2002-01-05 15:29:11 得分 10
char* pBuf;
pBuf = new char[MAX];
string m_str;
...
m_str.copy(pBuf,nLen);
getName(pBuf);
Top
2 楼zcj_csdn()回复于 2002-01-05 15:47:52 得分 0
这样行否:
string m_str;
getName(const_cast<char*&>m_str.data());Top
3 楼hollysky(爱神)回复于 2002-01-05 15:49:59 得分 0
只需要转化为指针类型传入即可
因为char*& 是指针引用Top
4 楼zcj_csdn()回复于 2002-01-05 15:54:46 得分 0
是这样吗:
getName(const_cast<char*>m_str.data()); Top
5 楼luohongming(lhm)回复于 2002-01-05 17:35:53 得分 0
用CString类的GetBuffer()函数试试
CString str;
getName(str.GetBuffer())Top
6 楼Donaldzju(鸭子)回复于 2002-01-05 21:56:04 得分 0
你的string 是STL里的,还是CString?
STL string : string.c_str()Top
7 楼sharp_shooter(狙击手)回复于 2002-01-06 01:23:21 得分 0
又来晚了Top
8 楼qqchen79(知秋一叶)回复于 2002-01-06 03:37:05 得分 0
string的c_str()返回为const char*,只能去掉const(用const_cast)。
但是谁保证string的内部表示一定就是char[]呢?最好的办法还是copy出来,然后再调函数。Top
9 楼zcj_csdn()回复于 2002-01-06 11:13:39 得分 0
string::c_str()和string::data()有没有区别?Top
10 楼lak47()回复于 2002-01-06 13:47:11 得分 10
书上说c_str()和data()有区别,c_str返回C风格字符串,有一个要在末尾加上'\0',用strlen取回的长度要相差1,但是我在VC6.0下测试,用strlen返回的长度是一样的,不知为何,在Window下把它们当相同的使用吧Top
11 楼uchinaboy()回复于 2002-01-06 14:35:14 得分 0
逐个传Top




