有没有办法增加QString

Is there a way to increment QString?

本文关键字:QString 增加 有没有      更新时间:2023-10-16

有没有办法在C++中增加QString,如下所示:

QString str("a");
str++; qDebug()<<a; //Here i want letter "b"

编辑:是的,基本上我想增加一个字母,但增加更长的字符串会很好。

你不能真正增加一个字符串,因为你首先必须定义它是如何工作的。例如,值将在哪里换行。

不过,您可以增加字符,但即使这样也仅适用于有意义的字符序列:

str[0].unicode()++;

编辑:反应OP评论

如果您只想在方案之间切换,则可以使用以下代码:

enum Scenarios { ScenarioOne, ScenarioTwo, ScenarioThree, ScenariosCount };
Scenarios var = ScenarioOne;
var++;

你不能递增或递减 QString,因为 ++ 和 -- 运算符不是为该类定义的,并且没有明确的概念来增加字符串可能意味着什么(虽然你可能很清楚,但还不够清楚,无法使其成为标准 Qt 库的一部分)。

你可以做的是创建一个QString的子类,然后实现operator++()和operator--()。使用这样的子类,您将保留标准 QString 的所有功能,同时让它完全按照您想要的递增和递减行为。

您可以使用每个字符的 ASCII 值并将它们合并到字符串中