QT資料型別轉換

2021-06-19 20:42:27 字數 3415 閱讀 9875

1、char * 與 const char *的轉換

char *ch1="hello11";

const char *ch2="hello22";

ch2 = ch1;//不報錯,但有警告

ch1 = (char *)ch2;

2、char 與 qstring的轉換

char 轉換為 qstring

其實方法有很多中,我用的是:

char a='b';

qstring str;

str=qstring(a);

qstring 轉換為 char

方法也有很多種

qstring str="abc";

char *ch;

qbytearray ba = str.tolatin1()

ch = ba.data();

注意:在呼叫qbytearray.data()之前,必須要先顯示儲存這個bytearray。像這樣const char *ch = str.tolatin1().data();會使程式崩潰,因為qbytearray沒有被儲存,呼叫data()前是不存在的,必須先顯式呼叫一次tolatin1(),再呼叫data()。

3、qbytearray 與 char* 的轉換

qbytearray 轉換為 char *

char *ch;//不要定義成ch[n];

qbytearray byte;

ch = byte.data();

char * 轉換為 qbytearray

char *ch;

qbytearray byte;

byte = qbytearray(ch);

4、qstring 與 qbytearray 的轉換

qstring轉換為qbytearray

qbytearray byte;

qstring string;

byte = string.toascii();

qbytearray 轉換為 qstring

qbytearray byte;

qstring string;

string = qstring(byte);

這裡再對這倆中型別的輸出總結一下:

qdebug()<

qdebug()<

5 、int與 qstring 的轉換

int 轉 qstring

int a=10;

qstring b;

b=qstring::number(a)

qstring 轉int

qstring a="120"

int b;

b=a.toint()

5、qstring與string的轉換

qstring --> string

qstring.tostdstring();

string --> qstring

qstring::fromstdstring(string)

6、qstring與其他型別的轉換

qstring --->int,double,char *

qstring::toint()

qstring::todouble()

qstring.tostdstring().c_str();

7、 int double char* --->string

可以採用裡的stringstream

以int 為例,int a = 3;

stringstream ss;

string strint;

ss<>strint;

8、qstring--->qdatetime

cpp**  

qdatetime轉qstring  

public qdatetime qdate = qdatetime.currentdatetime();  

datetime = qdate.tostring("yyyy年mm月dd日ddddhh:mm:ss");  

//2023年03月-05日monday13:48:55

qstring轉換成qdatetime  

qdatetime datetime2 = qdatetime::fromstring("m1d1y9800:01:02",  

"'m'm'd'd'y'yyhh:mm:ss");  

9、qstring -->char*

cpp**  

qstring 轉換char*問題!  

方法一:  

qstring qstr("hello,word");  

const

char * p = qstr.tolocal8bit().data();  

方法二:  

const

char *p = qstr.tostdstring().data();  

//轉換過來的是常量

方法三:  

qstring str="abc";  

char *ch;  

qbytearray ba = str.tolatin1()  

ch = ba.data();   或者

qstring tmp = "test";

qbytearray text = tmp.tolocal8bit();

char *data = new char[text.size() + 1]

strcpy(data, text.data());

delete data;

10  float型別轉化為qstring型別

但是如何將float型別轉化為qstring型別呢?

檢視api很難發現封裝好的轉化函式

可以嘗試使用下面的**轉化:

float num = 1.222;

qstring data = qstring("float is %1").arg(num);

輸出結果是:float is 1.222

如果只要float轉化成的qstring,則使用如下:

qstring data = qstring("%1").arg(num);

**:

Qt 資料型別轉換

各種資料型別的相互轉換 char 與 const char 的轉換 char ch1 hello11 const char ch2 hello22 ch2 ch1 不報錯,但有警告 ch1 char ch2 char 轉換為 qstring 其實方法有很多中,我用的是 char a b qstrin...

QT 資料型別轉換

string std str abc qstring q str qstring fromstdstring std str qstring q str abc string q str.tostdstring string std str abc char str std str.c str st...

Qt資料型別轉換

1 qstring 向qbytearray轉換 使用qstring toutf8 思路 看qstring 有沒有函式。qstring str 123 qbytearray a str.toutf8 2 qbytearray 向 char 轉換 qbytearray data 思路 看qbytearr...