Как сделать и вывести срез строки(String) C/C++? Пишу программу, которая считывает текст и выводит построчно предложения. Как сделать срез из text с NumberArrayString-го по i-й элемент ?int NumberArrayString = 0; int NumberString = 0; std::string text = {}; getline(std::cin, text); printf("%d", text.size()); for (int i = 0; i < (text.size()); i++) { if ((text[i] == '.') || (text[i] == '!') || (text[i] == '?')) { NumberString++; std::cout << NumberString << "-я строка: " << ???????????????????? << std::endl; NumberArrayString = i; } }
Для того чтобы вывести срез строки от NumberArrayString-го до i-го элемента, можно воспользоваться методом substr() класса std::string.
В данном случае, вы можете использовать следующий код:
for (int i = 0; i < (text.size()); i++) { if ((text[i] == '.') || (text[i] == '!') || (text[i] == '?')) { NumberString++; std::string subString = text.substr(NumberArrayString, i - NumberArrayString + 1); std::cout << NumberString << "-я строка: " << subString << std::endl; NumberArrayString = i + 1; } }
Здесь метод substr() принимает два параметра: начальную позицию и количество символов, которые нужно взять из исходной строки. Вычитая NumberArrayString из i и прибавляя 1, мы получаем длину среза.
Теперь вы можете использовать subString для вывода подстроки на экран.
Для того чтобы вывести срез строки от NumberArrayString-го до i-го элемента, можно воспользоваться методом substr() класса std::string.
В данном случае, вы можете использовать следующий код:
for (int i = 0; i < (text.size()); i++){
if ((text[i] == '.') || (text[i] == '!') || (text[i] == '?'))
{
NumberString++;
std::string subString = text.substr(NumberArrayString, i - NumberArrayString + 1);
std::cout << NumberString << "-я строка: " << subString << std::endl;
NumberArrayString = i + 1;
}
}
Здесь метод substr() принимает два параметра: начальную позицию и количество символов, которые нужно взять из исходной строки. Вычитая NumberArrayString из i и прибавляя 1, мы получаем длину среза.
Теперь вы можете использовать subString для вывода подстроки на экран.