3

QStringを正しく分割するのに問題があります。間違えない限り、複数の区切り文字には正規表現が必要です。私はそれらにまったく慣れていないため、表現を理解できないようです。

文字列はファイルからのテキスト入力です。

f 523/845/1 524/846/2 562/847/3 564/848/4

配列に入れるには、各番号を個別に入力する必要があります。

いくつかのコード....

QStringList x;
QString line = in.readLine();
        while (!line.isNull()) {
            QRegExp sep("\\s*/*");

            x =  line.split(sep);

ポインタはありますか?

乾杯

4

3 に答える 3

7

次のように正規表現を変更します。

QRegExp sep("(\\s+|/)");

その後、xすべての番号があります。

于 2011-12-06T08:57:36.333 に答える
1

RegExをインタラクティブに試すことは非常に便利だと思いました。今日では、たとえばhttp://gskinner.com/RegExr/などのオンラインツールもたくさんあります。

そこに検索テキストを配置し、正規表現で遊んで、何がいつ一致するかを確認できます。

于 2011-12-06T08:48:34.630 に答える
-1

QStringを1つ以上の異なるトークンで分割するstrtok関数を使用できます。

これは次のようになります。

    QString a = "f 523/845/1 524/846/2 562/847/3 564/848/4";
    QByteArray ba = a.toLocal8Bit();
    char *myString = ba.data();
    char *p = strtok(myString, " /");

    while (p) {
        qDebug() << "p : " << p;
        p = strtok(NULL, " /");
    }

必要な数のトークンを設定できます。詳細については、この特定の関数のcplusplusページにアクセスしてください。http://www.cplusplus.com/reference/cstring/strtok/

よろしく!

于 2012-12-03T16:16:18.183 に答える