Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
ПаровозикТырТыр
0 / 0 / 0
Регистрация: 28.11.2018
Сообщений: 33
1

Ошибка Expression: string subscript out of range

22.01.2019, 09:15. Просмотров 975. Ответов 2
Метки нет (Все метки)

1)Вывести сообщение "МОЖНО", если из букв введённой строки X можно составить
введенную строку Y, при условии, что каждую букву строки X можно использовать
один раз; и сообщение "НЕЛЬЗЯ" в противном случае.
2)В строке удалить все пробелы, а затем после каждой пятой буквы вставить знак
вопроса.

При компиляции с одним знаком препинания все выдает нормально, а если добавить больше одного знака , то выдает следующую ошибку(см. скрин)
Как мне исправить эту ошибку? Помогите пожалуйста

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <windows.h>
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string x, y;
 
    int m = 0, n = 0;
 
    getline(cin, x);
    getline(cin, y);
 
    n = x.length(); //подсчет количества символов
    m = y.length(); //подсчет количества символов
 
 
    for (int i = 0; i < n; i++)
    {
        if (ispunct((unsigned char)x[i]))
            x.erase(i--, 1);
    }
    cout << x;
    cout << endl;
 
 
    for (int i = 0; i < m; i++)
    {
        bool a = false;
        for (int j = 0; j < n; j++)
            if (y[i] == x[j])
            {
                a = true;
                break; //остановка сравнения 
            }
        if (!a) { cout << "Нельзя"; return 0; } //проверка !а из цикла if, return 0 для завершения программы(чтобы в конце не выводилось "Можно")
    }
    cout << "Можно";
 
    return 0;
}
0
Миниатюры
Ошибка Expression: string subscript out of range  
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2019, 09:15
Ответы с готовыми решениями:

Ошибка expression string subscript out of range
Ребят, уже всю голову разбил... не пойму где здесь может быть ошибка, что я не так сделал????...

Expression: string subscript out of range
Программа должна выводить кол-во повторов символов в тексте но почему то выводит ошибку Expression:...

Debug Assertion Failed! Expression: string subscript out of range
Вот сегодня трудился целый день над игрой, и дошёл до момента когда начала появлятся выше...

Ошибка: string subscript out of range
При запуске выдает ошибку &quot;string subscript out of range&quot;. Подскажите, в чем проблема. #include...

Ошибка: String subscript out of range
Expression: String subscript out of range Консольное приложение. Программа должна перерабатывать...

2
qwe123qwea
74 / 58 / 31
Регистрация: 20.03.2017
Сообщений: 350
Завершенные тесты: 1
22.01.2019, 09:53 2
ПаровозикТырТыр, где-то за пределы диапазона строки вышел.

Добавлено через 3 минуты
ПаровозикТырТыр, скинь строки при которых ошибка получается.

Добавлено через 2 минуты
ПаровозикТырТыр, после удаления занков препинания нужно снова определить размер строки X, иначе в цикле(строка 34)
C++
1
 for (int j = 0; j < n; j++)
ты как раз и выходишь за диапазон значений строки X/
0
_stanislav
(50 / 50 || 80 / 20) ?
1027 / 779 / 312
Регистрация: 16.08.2014
Сообщений: 3,214
Завершенные тесты: 2
22.01.2019, 10:39 3
Лучший ответ Сообщение было отмечено ПаровозикТырТыр как решение

Решение

ПаровозикТырТыр, делай так
C++
1
2
3
4
5
6
for (int i = 0; i < x.length(); )
{
    if (ispunct((unsigned char)x[i]))
        x = x.erase(i, 1);
    else ++i;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2019, 10:39

Ошибка string subscript out of range
Здраствуйте создал библиотеку, при подключение библиотеки и запуска программи все работает...

Ошибка string subscript out of range
Нужно заменить символ 'w' на 'v'. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt;...

Ошибка String subscript out of range
Здравствуйте. Написал на Dev C++ 4.9.9.2 программу которая открывает фаил и кладет все в буфер....


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

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

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