online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include <set> #include <string_view> #include <vector> auto split(const std::string_view& string, const std::set<char>& separators) { std::vector<std::string_view> words; auto word_begin{ string.data() }; std::size_t word_len{ 0ul }; for (const auto& c : string) { if (!separators.contains(c)) { word_len++; } else { // we found a word and not a seperator repeat if (word_len > 0) { words.emplace_back(word_begin, word_len); word_begin += word_len; word_len = 0; } word_begin++; } } // string_view doesn't have a trailing zero so // also no trailing separator so if there is still // a word in the "pipeline" add it too if (word_len > 0) { words.emplace_back(word_begin, word_len); } return words; } int main() { std::set<char> seperators{ ' ', ',', '.', '!', '\n' }; auto words = split("apple, phone, bread\n keyboard, computer", seperators); bool comma = false; std::cout << "["; for (const auto& word : words) { if (comma) std::cout << ", "; std::cout << word; comma = true; } std::cout << "]\n"; return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue