QT-语法-string和qstring转换

string str;

QString qstr;

//从QString 到 std::string

str = qstr.toStdString();

//从std::string 到QString

qstr = QString::fromStdString(str);

-------------------------------------------------------------

std::string cstr;

QString qstring;

//从std::string 到QString

qstring = QString(QString::fromLocal8Bit(cstr.c_str()));

//从QString 到 std::string

cstr = string((const char *)qstring.toLocal8Bit());


一、QString与String

1)QString转String

string a;

QString b;

a= b.toStdstring(); 

2)string转QString

string a;

QString b;

b= QString::fromestdstring(a);

二、QString和char*

1)QString转化为QByteArray类型,然后由QByteArray再转化为char*

QString a;

char b[20];

QByteArray c= a.toLocal8Bit();

strcpy(b, c.data());

2)QString转化为string类型,然后由string转化char*

QString a;

char b[20];

std::string s= a.toStdString();

b= s.c_str();

3)char*转QString

QString a;

char b[20];

a= QString("%1").arg(b);

三、string和char*

1)string转化char*

string s = "1234";

char c[20];

strcpy(c , s.c_str());

/********************************************************************************************************************

在这里总结一下const char *c_str()的用法;

c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.

这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。

注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针

比如:最好不要采取以下方式:

char* c;

string s="1234";

c = s.c_str(); //c_str函数的返回值是constchar*的,不能直接赋值给char*类型 c

或者将其改为 const char* c = s.c_str();

***************************************************************************************************************************/

2)char*转化为string

char c[20] = "hello world!";

string s(c); //s = p

char[]转string 这里可以直接赋值 //s = p

四、string和int

1)int转化为string

int aa = 30;

stringstream ss;

ss<

string s1 = ss.str();

cout<

2)string转化为int

int a;

sscanf("123","%D",&a);

---------------------

作者:雪韵凌枫

来源:CSDN

原文:https://blog.csdn.net/u013360881/article/details/78878346

版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(QT-语法-string和qstring转换)