Есть ли способ увеличить QString?

Есть ли способ увеличить QString в C ++ — что-то вроде:

QString str("a");

str++;

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

РЕДАКТИРОВАТЬ: Да, в основном я хочу увеличить одну букву, но увеличение длинной строки было бы хорошо.

1

Решение

Вы не можете увеличить строку, потому что сначала вам нужно будет определить, как это будет работать. Например, где значения обернуть вокруг.

Вы можете увеличивать символы, но даже это будет работать только для значимых последовательностей символов:

str[0].unicode()++;

РЕДАКТИРОВАТЬ: реакция OP комментарии

Если вы просто хотите переключаться между сценариями, вот код, который вы хотите использовать:

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

Scenarios var = ScenarioOne;
var++;
4

Другие решения

Вы не можете увеличивать или уменьшать QString, потому что операторы ++ и — не определены для этого класса, и нет четкого представления о том, что может означать увеличение строки (хотя это может быть понятно для вас, это не ясно достаточно, чтобы сделать его частью стандартной библиотеки Qt).

Что вы можете сделать, это создать подкласс QString, а затем реализовать operator ++ () и operator — (). С таким подклассом вы сохранили бы все функции стандартного QString, в то время как он вел себя точно так же, как вы хотите для увеличения и уменьшения.

1

Вы могли бы использовать ASCII значения для каждого символа и объединить их в строку

0
По вопросам рекламы [email protected]