QString、String、char*之間轉換總結
阿新 • • 發佈:2018-12-30
一、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<<aa;
string s1 = ss.str();
cout<<s1<<endl; // 30
2)string轉化為int
int a;
sscanf("123","%D",&a);
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<<aa;
string s1 = ss.str();
cout<<s1<<endl; // 30
2)string轉化為int
int a;
sscanf("123","%D",&a);