搞定QString,string,char*,CString的互转
时间:2010-12-22 来源:Ryan Penn
方法有很多,这里说一种最通用的方法:char* 是最基础的类型,其他几种类型都可以先转换为char*,然后在进行对于类型的转换。
CString - char*
CString cstr = "this is a cstring.";char *ch = cstr.GetBuffer(cstr.GetLength() + 1);
cstr.ReleaseBuffer();
CString cstr;
// 直接赋值
cstr = tstr;
// 或者使用Format函数
cstr .Format(_T("%s"), tstr );
string - char*
const char* str1 = "this is a const char*.";string str(str1);
char* str2 = const_cast<char*>(str1.c_str());
QString - char*
const char* str = "this is a c string.";
QString qstr(QString::fromLocal8Bit(str));
const char* str2 = qstr.toLocal8Bit();
QString - string
#include <QString>#include <vector>
#include <iostream>
#include <string>
using namespace std;
QString s2q(const string &s);
string q2s(const QString &s);
QString s2q(const string &s)
{
return QString(QString::fromLocal8Bit(s.c_str()));
}
string q2s(const QString &s)
{
return string((const char *)s.toLocal8Bit());
}
相关阅读 更多 +