Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 1 / 0
Регистрация: 31.10.2018
Сообщений: 113
1

На 14 строчке выдает одну и ту же ошибку. Вообще не понимаю из-за чего

11.03.2019, 19:20. Просмотров 209. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void predlozhenie(string ch)//Вывести текст, составленный из последних букв всех слов.
{
    string ch2;
    int i = 0, j = 0;
    while (i + 1 != ch.size())
    {
        while ((ch[i] != ' ') && (i != ch.size() - 1))
        {
            if (i + 1 != ch.size()) ++i;
            else break;
        }
        if (i + 1 != ch.size())
        {
            ch2[j] = ch[i - 1];
            ++i;
        }
        if (i + 1 != ch.size()) ++j;
    }
    ch2[j] = ch[ch.size() - 1];
    ch2[j + 1] = '\0';
    cout << "konechny string: ";
    for (int a = 0; a < ch2.size(); ++a)
        cout << ch2[a];
    cout << '\n';
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2019, 19:20
Ответы с готовыми решениями:

Программа выдает одну ошибку, якобы в 48 строчке
Завтра мне кирдык если не сделаю! Программа выдает одну ошибку, якобы в 48 строчке #include...

Не понимаю из-за чего n в 16 строке ошибку выдает?
#include &lt;iostream&gt; using namespace std; int main() { const int N=31; float a; float sz=0;...

В коде выдает ошибку на 15 строчке. Мне надо исправить эту ошибку
procedure TForm1.BOkClick(Sender: TObject); var e1, e2: double; begin Label1.Caption := '';...

Смысл задачи не понимаю, с чего вообще начать. Объясните, пожалуйста
Макс, Евгений и Даниил придумали новую игру. У каждого из них есть игральный кубик (на гранях...

6
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
11.03.2019, 19:20 2
TimaGera31, код в теги надо занести
0
ALast
11.03.2019, 19:26
  #3

Не по теме:

TimaGera31, и темы бы не дублировать...

0
0 / 1 / 0
Регистрация: 31.10.2018
Сообщений: 113
11.03.2019, 19:27  [ТС] 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void predlozhenie(string ch)//Вывести текст, составленный из последних букв всех слов.
    {
    string ch2;
    int i = 0, j = 0;
    while (i + 1 != ch.size())
    {
        while ((ch[i] != ' ') && (i != ch.size() - 1))//ищем конец слова
        {
            if (i + 1 != ch.size()) ++i;
            else break;
        }
        if (i + 1 != ch.size())//записываем последнюю букву в ch2[j]
        {
            ch2[j] = ch[i - 1];
            ++i;
        }
        if (i + 1 != ch.size()) ++j;
    }
    ch2[j] = ch[ch.size() - 1];//записываем последнюю букву
    cout << "konechny string: ";
    for (int a = 0; a < ch2.size(); ++a)
        cout << ch2[a];
    cout << '\n';
    }
Добавлено через 6 минут
ошибка "string subscript out of range"
0
498 / 339 / 129
Регистрация: 22.11.2017
Сообщений: 975
11.03.2019, 19:27 5
i = 0;
i - 1 -> -1
ch[i - 1] -> ch[-1] в строке ch нет элемента с индексом -1.
1
0 / 1 / 0
Регистрация: 31.10.2018
Сообщений: 113
11.03.2019, 19:36  [ТС] 6
как я понял, при взятии индекса [], string неявно преобразуется в char[], и поэтому, мы можем выйти за пределы массива char
0
330 / 145 / 56
Регистрация: 17.10.2015
Сообщений: 580
11.03.2019, 19:55 7
Цитата Сообщение от TimaGera31 Посмотреть сообщение
как я понял, при взятии индекса [], string неявно преобразуется в char[]
Нет. [i] возвращает ссылку на элемент, который хранится в строке. Поэтому и возникло исключение, так как Вы пытаетесь обратиться к элементу за границами массива
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2019, 19:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Выдает одну одну ошибку как испрвить
Вот в такая ошибка: C:\Users\1\Lava 4.cpp(6) : error C2447: missing function header (old-style...

Не понимаю почему выдает ошибку
Вам поручено написать систему распределения доступа к файлам. Она должна не пускать пользователя к...

Выдает ошибку, не понимаю почему!
Эта строка подчеркивает красным: if(strcmp(str,&quot;sin&quot;)==0) res=sin(res); #include &lt;iostream&gt;...

Не понимаю почему выдает ошибку
procedure TForm1.Button1Click(Sender: TObject); var f : textfile; i : integer; begin if...

Выдает ошибку не понимаю почему
Помогите Выдает ошибку не понимаю почему именно в строчке где я хочу закрыть форму по нажатию на...

Не понимаю почему выдает эту ошибку
Здравствуйте, вот код программы( игра змейка ). Все вроде правильно, но выдает ошибку : main:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.