用Qstring給char 陣列賦值

2021-08-06 01:42:46 字數 571 閱讀 8273

tree_data.desc  //desc是char[80]型別的資料

qstring newdescstr;

strcpy(tree_data.desc ,

newdescstr.tolocal8bit().data());

注意:.tolocal8bit()為了讓qstring變成qbytearray,也為了漢字本地化處理;.data()是將qbytearray轉換為char*

有時候列印sql語句時,.tolocal8bit()和.data()不能連續寫,要分兩步進行;

另外寫了乙個函式,如果經常需要這樣做,可以呼叫該函式

//將str的內容填充到buff

int dbcfgfun::inputstrtobuff(char *buff, qstring str, int bufflen)

memset(buff, 0, bufflen);

int reallen = (str.tolocal8bit().length()if (reallen>0)

buff[bufflen-1] = 0;

return reallen;

}

char 位元組陣列 轉QString

char位元組陣列型別轉qstring裡邊要特別注意的是,陣列中含有00時,直接用qstring的方法tolatin1 轉換會出問題,遇到0就認為結束。下面是位元組陣列轉qstring型別的列子 位元組陣列轉16進製制字串,用於16進製制顯示 static qstring tohexstr qbyt...

將QString轉換為char

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

QString 向 char 的轉化

一 qstring 轉換為 char 將 qstring 轉 char 需要用到 qbytearray 類,qbytearray 類的說明詳見 qt 幫助文件。因為 char 最後都有乙個 0 作為結束符,而採用 qstring tolatin1 時會在字串後面加上 0 方法如下 qstring s...