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

Работа со string, который под вектором - C++

Восстановить пароль Регистрация
 
phoenixxt
0 / 0 / 0
Регистрация: 05.05.2015
Сообщений: 2
05.03.2016, 18:42     Работа со string, который под вектором #1
Не могу никак понять как удалить символ из строчки, которая является элементом вектора. Честно гуглил и в русском, и в английском интернете, но найти информацию по работе с подстроками строк, которые элементы вектора не смог. Не исключён вариант того, что плохо искал, конечно... В общем, вот пример того, как я пытался мыслить:
C++
1
2
3
4
5
6
7
8
9
10
for (auto i = a.begin(); i != a.end(); ++i)
    {
        h = *i;
        for (int j = 0; j != h.size(); ++j)
          if ((h[j] == ',') || (h[j] == '.') || (h[j] == '?') || (h[j] == '!'))
          {
            h.erase(j,1);
            *i = h;
          }
    }
Где, a - vector<string>, h - string.
Также пробовал с помощью range for
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sab1ch
BrainOverflow
 Аватар для sab1ch
123 / 127 / 41
Регистрация: 31.03.2013
Сообщений: 556
05.03.2016, 18:53     Работа со string, который под вектором #2
phoenixxt, удалить символы, которые указаны в условии? Если да, то, честно говоря, я создал строку, инициализировал ей вектор и вывел его. Или что-то другое нужно? (Правда, если много символов одних и тех же поставить в ряд, то они все не удалятся)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    string h = "Pr.iv,e?t";
    vector<string> a{h};
 
    for (auto i = a.begin(); i != a.end(); ++i)
    {
        h = *i;
        for (int j = 0; j != h.size(); ++j)
            if ((h[j] == ',') || (h[j] == '.') || (h[j] == '?') || (h[j] == '!'))
            {
                h.erase(j, 1);
                *i = h;
            }
    }
    for (auto &i : a)
    {
        cout << i << ' ';
    }
nd2
1063 / 802 / 270
Регистрация: 29.01.2016
Сообщений: 2,506
05.03.2016, 19:03     Работа со string, который под вектором #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    std::vector <std::string> a;
    a.push_back("1111, 111!");
    a.push_back("22222? wer.");
    a.push_back("3., wer!&?.");
    
    std::copy(a.begin(), a.end(), std::ostream_iterator <std::string>(std::cout, "\n"));
 
    for (auto i = a.begin(); i != a.end(); ++i)
    {
        for (auto j = (*i).begin(); j != (*i).end(); )
        {
            if (*j == ',' || *j == '.' || *j == '?' || *j == '!')
            {
                j = (*i).erase(j);
            }
            else
                ++j;
        }
    }
    std::cout << std::endl;
    std::copy(a.begin(), a.end(), std::ostream_iterator <std::string>(std::cout, "\n"));
 
    system("pause");
Миниатюры
Работа со string, который под вектором  
phoenixxt
0 / 0 / 0
Регистрация: 05.05.2015
Сообщений: 2
05.03.2016, 19:14  [ТС]     Работа со string, который под вектором #4
Всем спасибо, разобрался! Оказывалось, что проблема у меня была немного в другом. А отдельно от остальных функций, само удаление протестировать я не додумался, идиот))
Yandex
Объявления
05.03.2016, 19:14     Работа со string, который под вектором
Ответ Создать тему
Опции темы

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