How to split a string into an array by delimiter and remove empty elements in C++

1 Answer

0 votes
#include <iostream>
#include <sstream>
#include <vector>

std::vector<std::string> split_string_into_array_by_delimiter(std::string s, char delimiter) {
    std::vector<std::string> vec;
    std::string token;
    std::stringstream ss(s);

    while (std::getline(ss, token, delimiter)) {
        if (!token.empty()) {
            vec.push_back(token);
        }
    }
    
    return vec;
}

int main() {
    std::string s = "C#,Java,,C,,,Python,,,,,C++,,";
    
    std::vector<std::string> vec = split_string_into_array_by_delimiter(s, ',');

    for (const auto& element : vec) {
        std::cout << element << std::endl;
    }
}


/*
run:

C#
Java
C
Python
C++

*/

 



answered Sep 23, 2024 by avibootz
...