1
#include<iostream>
#include<string>
#include<vector>
#include <cctype>
using namespace std;
int main()
{
    vector<string>vs;
    string temp,line,String;
    int size,count,x=0;
    bool f = false;
    cout << "Enter elements: " << endl;
    do
    {
        string str;
        getline(cin, str);
        vs.push_back(str);
        cout << "Continue? (y/n)" << endl;
        getline(cin, temp);
    } while (temp.size() != 0 && temp == "y");
    cout << endl;
    cout << "Text:" << endl;
    for (size_t i = 0; i < vs.size(); i++)
        cout << vs[i] << endl;
    cout << endl;
    cout << "Enter size: ";
    cin >> size;
    cin.ignore();
    cout << "Text:" << endl;
    for (size_t j = 0; j < vs.size(); j++)
    {
        if (vs[j].size() >= size)
        {
            String = vs[j];
            count = 0;
            while (f == false)
                if (!isalpha(String[size - 1]))
                {
                    for (size_t k = 0; k < String.size(); k++)
                    {
                        line[x] = String[k];
                        count++;
                        if (x == size - 1)
                        {
                            cout << line << endl;
                            line.clear();
                            if (count == String.size()) f = true;
                            x = 0;
                            continue;
                        }
                        x++;
                    }
                }
                else
                {
                    size_t y = String.size();
                    for (size_t k = String.size() - 1; k >= 0; k--)
                    {
                        if (isalpha(String[k])) y--;
                        else break;
                    }
                    for (size_t k = 0; k < y; k++)
                    {
                        line[x] = String[k];
                        count++;
                        if (x == size - 1)
                        {
                            cout << line << endl;
                            line.clear();
                            if (count == String.size()) f = true;
                            x = 0;
                            continue;
                        }
                        x++;
                    }
                    String.clear();
                }
        }
        else cout << vs[j] << endl;
    }
    system("pause");
    return 0;
}
  • Крайний цикл не работает – Алексей May 23 '18 at 18:33
  • Чему равен размер line в выражении line[x] = String[k];? Почему Вы x сравниваете ниже с size-1? Вы считаете, что размер не заданной строки будет равен size? Или это я где-то пропустил ту часть, где Вы присваиваете line какое-то значение и тем задаете размер строки? – Vladimir May 23 '18 at 18:59
  • Не задал размер line. Сейчас переписал и этой ошибки больше нету. Прога хоть и не работает, но не мозолит глаза "string subscript out of range".))) Спасибо, что указали на эту детскую ошибку.! – Алексей May 23 '18 at 19:10

0 Answers0