2012-12-07 76 views
1

有沒有辦法來增加在C++爲QString - 是這樣的:
QString str("a");
str++;
qDebug()<<a; //Here i want letter "b"有沒有辦法增加QString?

編輯:是的,基本上我想遞增一個字母,但增加更長的字符串將是一件好事。

+2

不知何故,我擔心爲什麼有人會想要增加字符串。請不要說你在whatsapp工作,並想加密ROT13 – Najzero

+0

我沒有Qt,無法測試這個,但做了以下工作? 'str [0] .unicode()++' –

+0

@Benjamin Lindley QString提供toAscii()給c風格的字符回...你可以濫用任何字符邪惡增量的方式;-) – Najzero

回答

4

你真的不能增加一個字符串,因爲你首先要確定,將如何工作。例如,值將在什麼位置環繞。

你雖然可以增加人物,但即使這樣也只針對有意義的字符序列工作:

str[0].unicode()++;

編輯:反應OP評論

如果你只想場景之間切換,這是您要使用的代碼:

enum Scenarios { ScenarioOne, ScenarioTwo, ScenarioThree, ScenariosCount }; 

Scenarios var = ScenarioOne; 
var++; 
0

您可以使用ascii值的每個字符和concatenante他們串

+0

注意,ASCII與它無關 - 'QString'適用於Unicode(它包含' QChar's)。 –

+1

爲什麼大家都喜歡這個?這個答案對於'QString'沒有任何意義。 –

1

您不能遞增或遞減QString,因爲++和 - 運營商沒有爲該類定義,並且沒有關於字符串增量可能意味着什麼的清晰概念(雖然可能很清楚,將它作爲標準Qt庫的一部分是不夠的)。

你可以做的是創建一個QString的子類,然後實現operator ++()和operator - ()。有了這樣一個子類,你可以保留標準QString的所有特性,同時使它的行爲與你想要的增量和減量完全一樣。

相關問題