Qt. получить часть QString

Я хочу получить QString из другого QString, когда я знаю необходимые индексы. Например: Основная строка: "Это строка". Я хочу создать новый QString из первых 5 символов и получить "Это".
: первый и последний char номер.
вывод: новый QString.

Как его создать?

P.S. Не только первые несколько букв, также из середины строки, например, с 5 по 8.

Ответ 1

Если вам не нужно изменять подстроку, вы можете использовать QStringRef. Класс QStringRef является оболочкой только для чтения вокруг существующей QString, которая ссылается на подстроку в пределах существующей строки. Это дает гораздо лучшую производительность, чем создание нового объекта QString для размещения подстроки. Например.

QString myString("This is a string");
QStringRef subString(myString, 5, 2); // subString contains "is"

Если вам нужно изменить подстроку, то left(), mid() и right() будут делать то, что вам нужно...

QString myString("This is a string");
QString subString = myString.mid(5,2); // subString contains "is"
subString.append("n't"); // subString contains "isn't"

Ответ 2

Используйте функцию left:

QString yourString = "This is a string";
QString leftSide = yourString.left(5);
qDebug() << leftSide; // output "This "

Также обратите внимание на mid(), если вы хотите большего контроля.