2013-08-05 74 views
0

構建此字符串的最簡單方法是什麼? (我知道我可以去與焦炭鑄造等很長的路要走......寧願留的QString的範圍內),THX爲以下內容構建QString指針?

m_qstr = (m_qstr->toStdString() + "\r\n\r\n" + qstrResults.toStdString() + "\r\n"); 

enter image description here

回答

1

m_qstr是QString的指針,你想分配一個std::string。首先,您需要取消引用指針,所以你得到的對象,那麼你可以使用c_str的的std :: string轉換爲一個char *(),所以你的QString可以複製它:

*m_qstr = (m_qstr->toStdString() + "\r\n\r\n" + qstrResults.toStdString() + "\r\n").c_str(); 

另一種方式,而且可能更好的辦法是不是萬能轉換爲std::string,並只保留將QString:

*m_qstr = *m_qstr + "\r\n\r\n" + qstrResults + "\r\n"; 
+0

不能轉換 '爲const char *' 到 '的QString *' 在分配 – jdl

+1

你使用'* m_qstr ='或'只是= m_qstr'? – Lochemage

2

你爲什麼打電話toStdString?如果m_qstr是QString,那麼連接QStringconst char*應該沒有問題。我一直使用這種方法與我的Qt應用程序:

QString str = "Testing"; 
str += " concatenation."; 
+0

嘗試用指針 – jdl

5

使用QString append

(*m_qstr).append("\r\n\r\n").append(qstrResults).append("\r\n");