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

Как остановить цикл при окончании строки string - C++

Восстановить пароль Регистрация
 
Ascold
0 / 0 / 0
Регистрация: 27.01.2015
Сообщений: 106
26.11.2015, 13:36     Как остановить цикл при окончании строки string #1
Пробую разделять на слова, разделенные пробелом строку string. Внутренний код цикла работает исправно, но сам цикл не останавливается (выводит пробелы после того, как вывел слова). Как остановить этот цикл после полного разделения строки?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Split(string str)
{
    string separ(" ");
    string temp = str;
    while (true) {
        int pos = temp.find(separ); // Позиция первого символа строки-разделителя.
        if (pos != 0) {
            string word = temp.substr(0, pos); // Строка до разделителя.
            cout << word << endl;
            temp = temp.substr(pos + separ.length()); // Строка после разделителя.
        }
        else
            break;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2015, 13:36     Как остановить цикл при окончании строки string
Посмотрите здесь:

C++ Строки STRING - как присвоить в S - B
C++ как остановить цикл ?
Как остановить цикл при вводе enter? C++
Ошибка при посимвольной записи из строки char в строку string C++
Выйти из цикл по окончании всех строк в файле C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
26.11.2015, 13:40     Как остановить цикл при окончании строки string #2
C++
1
2
3
4
5
6
7
8
#include <sstream>
void Split(string str)
{
    istringstream ss(str);
    string word;
    while (ss>>word)
            cout << word << endl;
}
Ascold
0 / 0 / 0
Регистрация: 27.01.2015
Сообщений: 106
26.11.2015, 13:48  [ТС]     Как остановить цикл при окончании строки string #3
Да, но istringstream не учитывает разделителем знаки препинания, только пробелы.
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,445
26.11.2015, 13:58     Как остановить цикл при окончании строки string #4
C++
1
if (pos != string::npos) {
Yandex
Объявления
26.11.2015, 13:58     Как остановить цикл при окончании строки string
Ответ Создать тему
Опции темы

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