Explore Connect Documentation
Snippets
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
37
38
39
40
41
#include <algorithm>
#include <iostream>
#include <vector>
template <typename OutputIterator>
void extractWords(std::string const& s, OutputIterator out)
{
    static auto const isSpace = [](char letter){ return letter == ' '; };
    
    auto const beginWord = std::find_if_not(begin(s), end(s), isSpace);
    auto const endWord = std::find_if(beginWord, end(s), isSpace);
    if (beginWord != endWord)
    {
        *out = std::string(beginWord, endWord);
        ++out;
    }
}
auto extractWordsVector(std::string const& s)
{
    std::vector<std::string> results;
    extractWords(s, back_inserter(results));
    return results;
}
bool testsPassed()
{
    bool passed = true;
    passed = passed && (extractWordsVector("word1  word2  ") == std::vector<std::string>{"word1", "word2"});
    passed = passed && (extractWordsVector("  word1  word2  ") == std::vector<std::string>{"word1", "word2"});
    passed = passed && (extractWordsVector("  word1  word2") == std::vector<std::string>{"word1", "word2"});
    passed = passed && (extractWordsVector("  ") == std::vector<std::string>{});
    passed = passed && (extractWordsVector("") == std::vector<std::string>{});
    return passed;
}
int main()
{
    std::cout << (testsPassed() ? "TESTS PASSED" : "TESTS FAILED") << '\n';
}
Press desired key combination and then press ENTER.