2012-12-07 35 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的所有特性,同时使它的行为与你想要的增量和减量完全一样。