用于将QString按给定数字进行拆分的算法,而不会破坏Qt C ++中的单词

问题描述 投票:0回答:1

我有长字符串,其中包含有意义的句子。我想按给定的字符数将其拆分,而该部分将保留一部分,而不会破坏part的最后一个字。

[我写了一种算法,可以很好地分割字符串,但是各部分中的单词混合在一起并放置在随机位置。

我的代码:

QString str = "कोरोना वायरस के संक्रमण से स्पेन में शुक्रवार 932 लोगों की मौत हुई. इसके साथ ही स्पेन में मरने वालों की कुल 
               संख्या 10 हज़ार 935 पहुंच गई है. इटली के बाद स्पेन दुनिया का दूसरा देश है जहां कोरोना वायरस से सबसे ज़्यादा मौतें हुई हैं.";
int m = 30;
QStringList words = str.split(" ");
QStringList result;
 while(words.isEmpty()==false){
    QString strPart;
    if(QString(words.join(" ")).length()>m){
        for (int i = 0; i < words.count(); i++) {
            if(strPart.count()<m){
                strPart.append(words.at(i)+" ");
                words.removeAt(i);
            }
        }
    }else if(QString(words.join(" ")).length()<m){
        for (int i = 0; i < words.count(); i++) {
             strPart.append(words.join(" "));
             words.clear();
        }
    }
    result.append(strPart);
 }
qDebug() <<result;

并且调试的结果是:

("कोरोना के से में 932 की हुई. साथ ", "वायरस स्पेन लोगों इसके स्पेन मरने ", "संक्रमण मौत में की संख्या हज़ार ", "शुक्रवार वालों 10 पहुंच है. के ", "ही 935 इटली स्पेन का देश जहां ", "कुल बाद दूसरा कोरोना से ज़्यादा ", "गई है सबसे हुई ", "दुनिया वायरस मौतें हैं.")

任何帮助将不胜感激。我发现python code做同样的事情,但无法将其移植到c ++

c++ qt word-wrap text-processing qstring
1个回答
0
投票

根据@scheff的建议,他提出的在循环工作的最终代码中首先添加--i以更新i的值的解决方案,以供将来使用。

© www.soinside.com 2019 - 2024. All rights reserved.