Qt中QString與int,char等互轉

2021-08-21 06:25:03 字數 4464 閱讀 8642

a .  使用arg

long

a=36;

qstring

s=qstring("%1").arg(a);//s

=="36"

//int

轉qsting

qstring

stepinfo=tr("time:

%1")

.arg(qstring::number(timestamp,10),

8,'0');

//10進製,8位,不足補0

b .  使用qstring::number() ;

long

a=63;

qstring

s=qstring::number(a,

10);//s

=="63"

qstring

t=qstring::number(a,

16).toupper();//t

=="3f"

//toupper:

大寫

static qstring number

(int, int base=10)

;

static qstring number

(uint, int base=10)

;

static qstring number

(long, int base=10)

;

static qstring number

(ulong, int base=10)

;

static qstring number

(qlonglong, int base=10)

;

static qstring number

(qulonglong, int base=10)

;

static qstring number

(double, char f='g', int prec=6)

;

第二引數可省略,省略時為10,表示10進製;

qstringstr="ff";

bool

ok;

intdec=str.toint(&ok,10);

//dec=255

;ok=true

//qstring

轉int

inthex=str.toint(&ok,16);

//hex=255;ok=true;

//qstring

轉int

qstring

str="123.45";

double

val=str.todouble();

//val=123.45

//qstring

轉double

bool

ok;

double

d;

d=qstring("1234.56e-02").todouble(&ok);

//ok=true;d=12.3456

qstring

str="123.45";

float

d=str.tofloat();

//d=123.45

qstring

str="r2d2";

bool

ok;

float

d=str.tofloat(&ok);

//轉換是被時返回0.0,ok=false;

char

a='b';

qstring

str;

str=qstring(a);

2 >  qstring 轉 char

qstring

str="qq";

char

*ch;

ch=str.tolatin1.data();

char

*ch1="tt";

const

char

*ch2="qq";

ch1=(char

*)ch2;

char

*ch;

qbytearray

byte;

ch=byte.data();

2 > char * 轉 qbytearray 

char

*ch;

qbytearray

byte;

byte=

qbytearray(ch);

提供的字元編碼集的轉換函式將會返回乙個

constchar*

型別版本的

qbytearray

,即建構函式

qbytearray

(constchar*)

構造的qbytearray

物件。qbytearray

類具有乙個位元組陣列,它既可以儲存原始位元組(

raw bytes

),也可以儲存傳統的以「

\0」結尾的

8位的字串。在

qt中,使用

qbytearray

比使用const char*

更方便,且

qbytearray

也支援隱式共享。轉換函式有以下幾種。

① toascii():返回乙個ascii編碼的8位字串。

② tolatin1():返回乙個latin-1(iso8859-1)編碼的8位字串。

③ toutf8():返回乙個utf-8編碼的8位字串(utf-8是ascii碼的超級,它支援整個unicode字符集)。

④ tolocal8bit():返回乙個系統本地(locale)編碼的8位字串。

qstring

qstr("hello,word");

const

char

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

const

char

*p2=qstr.tostdstring().data();

qbytearray

byte;

qstring

string;

string=

qstring(byte);

2 > qstring  轉 qbytearray  

qbytearray

byte;

qstring

string;

byte=string.toascii();

qstring

b_datetime;

hh:mm:ss")));

qbytearray

handle_data;

//byte0為高8位

//取出對應位的16進製制char型之後轉換為16進製制的int型(強制轉換)

intdata1=(unsigned

char)handle_data.at(0);

//byte1為低8位

//取出對應位的16進製制char型之後轉換為16進製制的int型(強制轉換)

intdata2=(unsigned

char)handle_data.at(1);

intdata_sum=data1<<8|data2;//移位8位是乙個位元組

//將16進製制data_sum轉換為string型別的10進製數便於在text上顯示

qstring

data_string=

qstring::number(data_sum,10);

Qt中QString的比較

一般情況下,我們會使用compare來進行比較,具體的返回結果如下 qstring compare ab ab 值為0 qstring compare ab df 值為 0 qstring compare df ab 值為 0 使用這個函式時可以新增第三個引數 qstring compare df ...

Qt中的QString與char 的轉換

對於這些基本的資料型別的轉換有時會弄得我們很頭疼。不會寫,不敢寫,寫了怕錯。雖然現在跑qt下了,這不遇見了第一次需要資料型別轉換的時候了。先說qt中的qstring如何轉char 吧。然後就是char 轉qstring 方法一 qstring string qstring qlatin1string...

QT中QString與數字型別的轉換

把qstring轉換為 double型別 方法1.qstring str 123.45 double val str.todouble val 123.45 方法2.很適合科學計數法形式轉換 bool ok double d d qstring 1234.56e 02 todouble ok ok ...