qt幫助文件中給的乙個demo
qstring tmp = "test";
qbytearray text =tmp.tolocal8bit();
char * pch = new
char[text.size()+1
];strcpy(pch, text.data());
delete data;
別的文章中也給出了一些方法
char *chstr =null;qbytearray ba =str.tolatin1();
chstr = (char *)malloc(ba.length() + 1
); memset(chstr,
0, ba.length());
memcpy(chstr, ba.data(), ba.length());
chstr[ba.length()] = '
\0';
上面的**可以進一步優化
char *chstr =null;qbytearray ba =str.tolatin1();
chstr = (char *)malloc(ba.length() + 1
); memset(chstr,
0, ba.length() + 1); //
既然分配了這麼多就全memset掉,官方幫助文件沒有使用memset,估計是它分配的記憶體全部給用上了。人家有這個自信~
memcpy(chstr, ba.data(), ba.length() + 1);//
既然ba.data()的最後也是『\0』,就直接全拷貝好了
ps:說到new之後memset,可以採用更簡單的方式來實現:
char *p = newchar[10]();
它等價於
char *p = newchar[10];
memset(p, 0, 10);
QString 向 char 的轉化
一 qstring 轉換為 char 將 qstring 轉 char 需要用到 qbytearray 類,qbytearray 類的說明詳見 qt 幫助文件。因為 char 最後都有乙個 0 作為結束符,而採用 qstring tolatin1 時會在字串後面加上 0 方法如下 qstring s...
把CString轉化為char
正確方法 cstring m head char codefile codefile lpstr lpctstr m head 正確,想辦法去掉字尾 補充 int fnlen m head.getlength strcspn str,codefile new char fnlen 4 codefil...
java 把char 轉化為int
首先說明一下問題由於某個專案的需求需要使用到 int 的陣列,由於資料最初是 string 型別的,為了方便就先把 string 型別的資料轉化成了 char 可是專案需要的是 int 的資料,所以還得把 char 轉化成 int 在轉化的過程中 1,變成了49,2變成了 50.考慮了很久才忽然想起...