2011-05-27 59 views
0

我想刪除常量字符串的空白空間,但是當我使用刪除函數其顯示錯誤,常量字符串不能修改。請helpQString刪除函數,以刪除常量字符串

const QString abc = "hello world"; 
QString def  = " "; 
QString mk = abc .remove(def); // Here error saying const cant change 

請幫助

+0

你不能。你必須創建一個非const的副本。或者首先將字符串設置爲非const。 – 2011-05-27 07:53:35

回答

2

您不能修改一個常量字符串。 QString :: remove返回一個對abc的引用,所以刪除作品在abc上,mk不是副本,而是abc!如果你想操作一個const對象,尋找那些是const函數的函數。

編輯:

const QString abc = "hello world"; 
QString ijk = abc; 
QString def  = " "; 
QString mk = ijk .remove(def); // Here error saying const cant change 
+0

你能幫我嗎?我該如何做到這一點。 QTassistant也說相同,但不知道如何使它工作。 – Sijith 2011-05-27 08:56:39

+0

但是這裏我們使用的是變量變量ijk。是否有可能使用ijk變量進行輸出。 – Sijith 2011-05-27 09:17:47

+0

否 - 除非以QString abc而不是const QString開頭。其他東西都是髒的(例如,const將abc的地址轉換爲非const指針,並通過非const指針修改const對象) – Jens 2011-05-27 09:44:02

0

相同的操作,無需額外的變量:

const QString abc = "hello world"; 
QString def = " "; 
QString mk = abc; 
mk.remove(def);