您好,登錄后才能下訂單哦!
前面我們講解了開發(fā)計算器的信號處理機制,接下來我們來講講關(guān)于字符串顯示的問題。
我們都知道 C 語言不支持真正意義上的字符串;C 語言是用字符數(shù)組和一組函數(shù)來實現(xiàn)字符串操作的;C 語言不支持自定義類型,因此我們無法獲得字符串類型。
從 C 到 C++ 的進化過程引入了自定義類型,在 C++ 中可以通過類完成字符串類型的定義。C++ 中的STL標(biāo)準(zhǔn)庫又是怎么一回事呢?STL是意義上需要與 C++ 一同發(fā)布的標(biāo)準(zhǔn)庫,它是一套以模板技術(shù)完成的 C++ 類庫,包含了常用的算法和數(shù)據(jù)結(jié)構(gòu),同樣也包含了字符串類。
那么有一個我們?nèi)菀缀雎缘氖聦?,那就是STL的具體實現(xiàn)依賴于編譯器生產(chǎn)廠商。STL 的 “標(biāo)準(zhǔn)” 只是其接口是標(biāo)準(zhǔn)的,即相同的全局函數(shù)、算法類和數(shù)據(jù)結(jié)構(gòu)、類成員函數(shù)。不同廠商的編譯器所帶的 STL 存在差異。如果是依賴于 STL 開發(fā)的 C++ 程序在不同平臺上的行為可能出現(xiàn)差異?。。?br/>Qt中的字符串類:采用 Unicode 編碼,使用隱式共享技術(shù)來節(jié)省內(nèi)存和不必要的數(shù)據(jù)拷貝,能夠跨平臺使用,不必考慮字符串的平臺兼容性。
QString 直接支持字符串和數(shù)字的相互轉(zhuǎn)換;直接支持字符串的大小比較;直接支持不同字符編碼間的相互轉(zhuǎn)換;直接支持 std::string 和 std::wstring 的相互轉(zhuǎn)換;直接支持正則表達式的應(yīng)用。
接下來我們來創(chuàng)建一個示例代碼,說明 QString 的基本操作,構(gòu)建運行后,輸出結(jié)果如下:
有關(guān)別的用法我們就不在贅述,大家可以在幫助里查詢。
接下來我們就編寫關(guān)于在計算器文本框中的顯示代碼,如下:
在此我們只對 "<-","C",還有正常操作的顯示,對于 “=” 操作符暫時不作處理,在后面我們會繼續(xù)對它進行處理,至此計算器已經(jīng)具有正常操作的功能。但是我們發(fā)現(xiàn)一個小問題,就是它是從左邊開始輸入的,不符合我們正常的操作。于是乎我們就在代碼中 construct 函數(shù)里加入這句:
m_edit->setAlignment(Qt::AlignRight);
再次構(gòu)建運行后,界面正常從右開始顯示,如下:
本節(jié)的關(guān)于計算器的字符串處理的學(xué)習(xí)就到此為止啦,大家可以下去自己再根據(jù)幫助去查詢相關(guān)的操作。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。