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

Аналог метода Split для std::string - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск букв латиницы http://www.cyberforum.ru/cpp-beginners/thread162329.html
Найти буквы латиницы в словах текста. Вывести такие слова на екран.
C++ Вывести на экран имя класса Можно как нибуть форматнуть в string имя класса? class HelloWorld { public: string s; void view(){ cout << s << endl; http://www.cyberforum.ru/cpp-beginners/thread162327.html
Системы исчиления в C++ C++
Как работать со системами исчиления на C++. Какие переменные надо использовать? Для примера помогите мне решить эту задачу... Число вводится своим двоичным представлением (длина числа не превышает...
C++ Объекты классов, взаимодействуют между собой посредством передачи сообщений
Помогите решить задачку,нужна в инст на комиссионный экзамен. Составить программу реализующую: 1)классы,которые могут содержать конструкторы,компонентные функции,перегружающие...
C++ Исчезает окно консоли http://www.cyberforum.ru/cpp-beginners/thread162308.html
Запускаю программу, ввожу первое число, второе число, жму Enter и окно MS DOS исчезает, не выводя сумму. Что нужно добавить? Именуйте темы осмысленно. Название "Что нужно добавить?" никак не говорит...
C++ Не могу понять разницу! do-while Цикл for работает: #include <iostream> #include <math.h> #include <conio.h> using namespace std; int main() { char ch='a'; подробнее

Показать сообщение отдельно
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
29.08.2010, 17:53
Способ из гугла
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
inline bool space(char c){
    return std::isspace(c);
}
 
inline bool notspace(char c){
    return !std::isspace(c);
}
 
//break a sentence into words
std::vector<std::string> split(const std::string& s){
    typedef std::string::const_iterator iter;
    std::vector<std::string> ret;
    iter i = s.begin();
    while(i!=s.end()){
        i = std::find_if(i, s.end(), notspace); // find the beginning of a word
        iter j= std::find_if(i, s.end(), space); // find the end of the same word
        if(i!=s.end()){
            ret.push_back(std::string(i, j)); //insert the word into vector
            i = j; // repeat 1,2,3 on the rest of the line.
        }
    }
    return ret;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru