Qt中將QString轉換為char 或者相反

2021-09-08 18:50:15 字數 1805 閱讀 7231

1.將qstring轉換為std::string

,可以通過qstring的成員函式tostdstring()

qstring qstr="

123";std::string str=qstr.tostdstring();

2.將qstring轉換為char *或者相反

直接轉換不行,因為qstring沒有提供直接的成員函式,但是可以通過qbytearray中轉一下,例如:

int main(int argc, char **ar**)

還有其他多種方法:

方法一 -----------------------------------------

#define g2u(s) ( qtextcodec::codecforname("gbk")->tounicode(s) )

#define u2g(s) ( qtextcodec::codecforname("gbk")->fromunicode(s) )qstring str;

qcstring cstr;

str = g2u("

中文輸入");

cstr =u2g(str);

qcstring有這樣乙個過載運算子

operator

const

char * () const

可以這樣

printf(

"%s\n

", (const

char*) cstr);

或是copy出來

char buf[1024

];strcpy(buf, (

const

char*) cstr);

方法二 -----------------------------------------如果是中文系統 直接用 (

const

char*) str.local8bit()

例如printf("%s

", (const

char*) str.local8bit());

str是乙個qstring

方法三 -----------------------------------------

char str[64

];qtextcodec *textcod = qtextcodec::codecforname("

gbk"

); qcstring string1 = textcod ->fromunicode(listbox1->currenttext());

strcpy(str,string1);

qstring和std::

string

從char*到 qstring可以從fromlocal8bit()轉化std::string有c_str()的函式使再轉化為char*qstring有toascii()記不清了

你可以看看.

又是我的粗心釀成大錯,我重新檢視了一下qt文件,原來qt可以直接從std::wstring產生乙個qstring,用qstring::fromstdwstring(

quote:

qtextcodec::setcodecforlocale(qtextcodec::codecforname(

"gb18030

"));

然後是從utf8編碼到gb編碼的字串轉換方法:

Qt 把QString轉換為 double型別

把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 ...

C 中將string轉換為int

c語言庫函式名 atoi 功 能 把字串轉換成整型數 函式說明 atoi 會掃瞄引數nptr字串,檢測到第乙個數字或正負符號時開始做型別轉換,之後檢測到非數字或結束符 0 時停止轉換,返回整型數。原型 int atoi const char nptr 需要用到的標頭檔案 include 程式例 1 ...

將QString轉換為char

官方說明 注意在呼叫qbytearray.data 之前,必須要先顯示儲存這個bytearray。像這樣const char c str2 str2.tolatin1 data 會使程式崩潰,因為qbytearray沒有被儲存,呼叫data 前是不存在的,必須先顯式呼叫一次tolatin1 再呼叫d...