1樓:在晴天的雨傘
char*轉換
qt下面,字串都用qstring,確實給開發者提供了方便,想想vc裡面定義的各種變數型別,而且函式引數型別五花八門,經常需要今年新那個型別轉換
qt再使用第三方開源庫時,由於庫的型別基本上都是標準的型別,字串遇的多的就是char*型別
在qt下怎樣將qstring轉char*呢,需要用到qbytearray類,qbytearray類的說明詳見qt幫助文件。
因為char*最後都有一個『/0』作為結束符,而採用qstring::tolatin1()時會在字串後面加上『/0』
方法如下:
qstring str;
char* ch;
qbytearray ba = str.tolatin1();
ch=ba.data();
這樣就完成了qstring向char*的轉化。經測試程式執行時不會出現bug
注意第三行,一定要加上,不可以str.tolatin1().data()這樣一部完成,可能會出錯。
補充:以上方法當qstring裡不含中文時,沒有問題,但是qstring內含有中文時,轉換為char*就是亂碼,採用如下方法解決:
方法1:
新增gbk編碼支援:
#include
qtextcodec::setcodecfortr(qtextcodec::codecforname("gbk"));
qtextcodec::setcodecforlocale(qtextcodec::codecforname("gbk"));
然後改變上面的第三行為:qbytearray ba = str.toloacl8bit(); toloacl8bit支援中文
方法2:
先將qstring轉為標準庫中的string型別,然後將string轉為char*,如下:
std::string str = filename.tostdstring();
const char* ch = str.c_str();
2樓:匿名使用者
#include
#include
using namespace std;
class my
my(const char * s)
my(const my & s)
my(const string & s)
my operator =(const my & s)char operator (int index) constbool operator ==(const my & s)bool operator !=(const my & s)bool operator <(const my & s)friend my operator +(const my & a,const my & b)
friend ostream & operator <<(ostream & os,my & s)
private:
string str;
};int main()
定義student類儲存學生資訊(包括學號、姓名和成績),過載提取運算子和插入運算子實現學生資訊的 10
3樓:soring的春天
過載就是實際運算子的算術功能,比如說類a與類b,類a中有變數aa, 類b中有變數bb, 通常的搞法是a.aa + b.bb = xx, 過載後就是a+b = xx,
4樓:育知同創教育
多去複習下吧 這個不難 學到的知識是你自己的誰也拿不走
5樓:拷你妹
好好學習,別再糊弄老師了
先設計點類(Point),該類的資料成員包括點的x座標和y座標,成員函式實現的
class point point int xx,int yy point int x int y class line public pointline point pa,point pb float getlinelengh 獲取直線長度float getlineascent 獲取直線斜率 fl...
資料字典中,一般包括哪三類資料進行定義
資料字典 對資料的資料項等進行定義和描述。資料字典 data dictionary 是一種使用者可以訪問的記錄資料庫和應用程式後設資料的目錄。主動資料字典是指在對資料庫或應用程式結構進行修改時,其內容可以由dbms自動更新的資料字典。被動資料字典是指修改時必須手工更新其內容的資料字典。1資料字典是一...
平面設計都包括哪些設計,平面設計包括哪些
超級単子 平面設計 graphicdesign 的定義泛指具有藝術性和專業性,以 視覺 作為溝通和表現的方式。透過多種方式來創造和結合符號 和文字,藉此作出用來傳達想法或訊息的視覺表現。平面設計師可能會利用字型排印 視覺藝術 版面 pagelayout 等方面的專業技巧,來達成創作計劃的目的。平面設...