如何将string 转成 char * ? 在线等待
#include <string>
using namespace std;
string strTemp;
strTemp="hello world";
char * szTemp = new char [256];
szTemp=(如何转换?)strTemp;
问题点数:100、回复次数:5Top
1 楼keiy()回复于 2004-09-02 17:00:55 得分 20
1.直接用
char * szTemp =strTemp.c_str();
2.拷贝
char * szTemp = new char [256];
strcpy(szTemp,strTemp.c_str());Top
2 楼plainsong(短歌)()回复于 2004-09-02 17:00:57 得分 20
char * szTemp = new char[strTemp.size() + 1];
memcpy(szTemp, strTemp.c_str(), strTemp.size() + 1);Top
3 楼huangyang88(中国-必胜)回复于 2004-09-02 17:08:02 得分 20
只能用拷贝的方式,不能用keyi讲的第一种方式,第二种可以Top
4 楼xteaj(半桶水)回复于 2004-09-02 17:13:01 得分 20
strcpy(szTemp,strTemp.c_str());
其实strTemp.begin()就是一个字符串指针,
在strTemp的生命周期内可直接使用。Top
5 楼plainsong(短歌)()回复于 2004-09-02 17:13:27 得分 20
keyi的第一种方法也是可以用的,只是必须保证szTemp只在strTemp有没有释放也没有改变的情况下使用。
此外,我之所以使用memcpy而不使用strcpy是因为在长度已知的情况下memcpy可以比strcpy快,而string::size()是很快的(常数级,不象strlen那样是线性级)。Top




