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