你如何在Qt中删除字符串(qstring)中的子字符串

How do you delete a sub-string in a string(qstring) in Qt

Qt中有没有类似于Delphi中的delete()和copy()的函数.

我正在从通过 USB 连接到我的计算机的设备读取数据并将其存储为 QString。读取的每一行都不相同(或者被缩短,即使在使用 readyRead 时也是如此)。我创建了一个缓冲区字符串来添加这些 "half sting"(例如 string = "This" 而不是 "This is a string#"),现在我想复制字符串直到 '#' 然后删除string 所以如果添加了新的 "half stings" 我可以对它们做同样的事情。下面的代码是我试过的

void MainWindow::readSerial()
{
    QByteArray serialData = port->readAll();
    serialBuffer += serialData;

    QByteArray serialString = serialBuffer.

    qDebug() << serialString;
    ui -> textEdit ->append(serialString);

    //serialBuffer.replace(serialString,"");
}

以上代码只returns一个空字符串。

void MainWindow::readSerial()
{
    QByteArray serialData = port->readAll();
    serialBuffer += serialData;

    QString serialString = serialBuffer.mid(serialBuffer.indexOf("$"),serialBuffer.indexOf("\r\n"));

    qDebug()<< "index of \r\n" << serialBuffer.indexOf("\r\n");
    qDebug() << "SerialString" <<serialString;
    ui -> textEdit ->append(serialString);
    qDebug() << "SerialBuffer: " << serialBuffer;

    serialBuffer.replace(serialString + "\r\n","");

}

以上代码有效。谢谢大家

问候