Форум программистов, компьютерный форум CyberForum.ru

Substr и рекурсия - C++

Восстановить пароль Регистрация
 
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
08.06.2014, 02:37     Substr и рекурсия #1
Доброй ночи!

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
void extract(string*, string&);
 
int main()
{
    string array[4];
    string test = "FOO bar,1444,63333,99222,100333";
    int first = test.find(',');
    string data = test.substr(first + 1);
    cout << data << endl;
    extract(array, data);
    for (int i = 0; i < 4; i++)
        cout << array[i] << endl;
 
 
    return 0;
}
 
void extract(string* a, string& s)
{
    int start = 0, end = 0;
 
    start = s.find(',');
    end = s.find(',', start + 1);
    if (end == string::npos) {
        *a = s.substr(start + 1);
        return;
    }
    *a++ = s.substr(start + 1, (start - end - 1)); //ЗДЕСЬ ПОЧЕМУ-ТО СТРОКА ВЫДЕЛЯЕТСЯ НЕ ТАК КАК НАДО
    s = s.substr(end);
    extract(a, s);
}
Хочу чтобы в array было:
1444
63333
99222
100333
А получается вот так:
63333,99222,100333
99222,100333
100333

Прошу помочь разобраться.

Добавлено через 19 минут
А, там нужно:
C++
1
*a++ = s.substr(start + 1, (end - start - 1));
Решено.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2014, 02:37     Substr и рекурсия
Посмотрите здесь:

Рекурсия!!!! C++
рекурсия C++
C++ рекурсия
C++ Рекурсия
C++ Рекурсия C++
Рекурсия C++
Рекурсия C++
Русские символы и substr C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru