Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
#1

Исправьте ошибку string subscript out of range - C++

03.03.2013, 18:19. Просмотров 615. Ответов 9
Метки нет (Все метки)

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
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
int main ()
{
    string s = "222/2";
    string* s2 = new string [s.length()];
    string delimiters = "+ * / - ( )";
    size_t current;
    size_t next = -1;
 
    int i = 0;
    
    do
    {
      current = next + 1;
      next = s.find_first_of( delimiters, current );
      cout << s.substr( current, next - current ) << endl;
      cout << s[next] << endl;
      s2[i++] = s.substr( current, next - current );
      s2[i++] = s[next];
    }
 
    while (next != string :: npos);
 
 
    for (unsigned int i = 0; i < s2->length(); i++)
        cout << s2[i] << endl;
    
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 18:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исправьте ошибку string subscript out of range (C++):

String subscript out of range - C++
Разбираю пример, который дала препод в примерах к лекциям..Пример по коду Виженера.. Пару раз запустился-результат выводился.Исправила...

String subscript out of range - C++
При запуске выдает ошибку &quot;string subscript out of range&quot;. Подскажите, в чем проблема. #include &lt;iostream&gt; #include &lt;string&gt; ...

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

Ошибка String subscript out of range - C++
Здравствуйте. Написал на Dev C++ 4.9.9.2 программу которая открывает фаил и кладет все в буфер. Содержание файла: gehen v test*kommen v...

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

Тип string и subscript out of range - C++
Доброго времени дня. Такая проблема. Обращаюсь к отдельному элементу массива: #include &lt;iostream&gt; #include &lt;string&gt; ...

9
icpu
354 / 268 / 58
Регистрация: 10.03.2011
Сообщений: 1,281
Записей в блоге: 2
03.03.2013, 18:47 #2
видимо, вместо одинарного слеша / в текстовых константах нужно использовать двойной //, ибо одиночный используется для ввода системных символов, байтовых значений и да мало ли.
1
Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
03.03.2013, 19:34  [ТС] #3
нет все равно ошибка
0
icpu
354 / 268 / 58
Регистрация: 10.03.2011
Сообщений: 1,281
Записей в блоге: 2
03.03.2013, 19:45 #4
что произойдёт, если next станет string::npos?
исправьте слеши обратно, я их перепутал
1
Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
03.03.2013, 19:53  [ТС] #5
string::npos ето пока не конец stringa
0
icpu
354 / 268 / 58
Регистрация: 10.03.2011
Сообщений: 1,281
Записей в блоге: 2
03.03.2013, 20:04 #6
Именно сам алгоритм:
Некст (извините, что по-русски) стал равен нпоз. Вы спокойненько берёте этот нпоз, вычитаете из него куррент, получая что-то в районе 10^10, и говорите: "строка длинной гигабайт добавляется в список", на что стринг логично замечает: "У меня стоко нет"
Решение: если (некст == нпоз) некст = с.сайз
1
Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
03.03.2013, 20:10  [ТС] #7
где ето описать
0
icpu
354 / 268 / 58
Регистрация: 10.03.2011
Сообщений: 1,281
Записей в блоге: 2
03.03.2013, 20:17 #8
после next = ...;
а так же придётся изменить условие выхода на next == s.size
1
Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
03.03.2013, 20:23  [ТС] #9
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
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
int main ()
{
    string s = "25+69-96*85";
    string* s2 = new string [s.length()];
    string delimiters = "+ * / - ( )";
    size_t current;
    size_t next = -1;
 
    int i = 0;
    
    do
    {
      current = next + 1;
      next = s.find_first_of( delimiters, current );
      if(next == string::npos)
      {
          next = s.size();
      }
      cout << s.substr( current+1, next - current ) << endl;
      cout << s[next] << endl;
      //s2[i++] = s.substr( current, next - current );
      //s2[i++] = s[next];
    }
    while (next == s.size());
 
 
    //for (unsigned int i = 0; i < s2->length(); i++)
        //cout << s2[i] << endl;
    
    return 0;
}
програма не работает так как надо
0
icpu
354 / 268 / 58
Регистрация: 10.03.2011
Сообщений: 1,281
Записей в блоге: 2
03.03.2013, 20:40 #10
Вот такой получился монстр
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
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
int main ()
    {
    string s = "25+69-96*85";
    string* s2 = new string [s.length()];
    string delimiters = "+*/-()";
    size_t current;
    size_t next = -1;
 
    int i = 0;
 
    do
        {
        current = next + 1;
        next = s.find_first_of( delimiters, current );
        if(next == string::npos)
            {
            next = s.size();
            cout << s.substr( current, next - current ) << endl;
            s2[i++] = s.substr( current, next - current );
            }
        else{
            cout << s.substr( current, next - current ) << endl;
            s2[i++] = s.substr( current, next - current );
            cout << s[next] << endl;
            s2[i++] = s[next];
            }
        }
        while (next != s.size());
 
        return 0;
    }

есть огромный потенциал для уменьш... да кому оно надо?!
1
03.03.2013, 20:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2013, 20:40
Привет! Вот еще темы с ответами:

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

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

Хеш-таблицы: string subscript out of range - C++
#include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;string&gt; using namespace std; typedef string nametype; struct celltype { ...

и вновь я к вам - string subscript out of range - C++
Смысл того, что делаю, в принципе по комментам кода должно быть понятно - частотный анализ текста. На 38 строке выбивает string subscript...


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

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

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