1

C ++でQStringをインクリメントする方法はありますか?次のようなものです。
QString str("a");
str++;
qDebug()<<a; //Here i want letter "b"

編集:はい、基本的に私は1文字をインクリメントしたいのですが、より長い文字列をインクリメントするのが良いでしょう。

4

3 に答える 3

4

最初に文字列がどのように機能するかを定義する必要があるため、文字列を実際にインクリメントすることはできません。たとえば、値はどこでラップアラウンドしますか。

ただし、文字をインクリメントすることはできますが、これでも意味のある文字シーケンスに対してのみ機能します。

str[0].unicode()++;

編集:リアクションOPコメント

シナリオを切り替えるだけの場合は、次のコードを使用します。

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

Scenarios var = ScenarioOne;
var++;
于 2012-12-07T14:45:52.570 に答える
1

++および--演算子がそのクラスに対して定義されていないため、QStringをインクリメントまたはデクリメントすることはできません。また、文字列のインクリメントが何を意味するかについての明確な概念はありません(明確な場合もありますが、明確ではありません)。標準のQtライブラリの一部にするのに十分です)。

できることは、QStringのサブクラスを作成してから、operator ++()とoperator--()を実装することです。このようなサブクラスを使用すると、標準のQStringのすべての機能を保持しながら、インクリメントおよびデクリメントで必要な動作を正確に行うことができます。

于 2012-12-07T14:55:12.663 に答える
0

各文字のASCII値を使用して、それらを文字列に連結することができます

于 2012-12-07T14:38:46.473 に答える