How to write an equivalent to PHP implode(string $separator, array $array): string in C++

3 Answers

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

std::string implode(const std::string& separator, const std::vector<std::string>& elements) {
    std::ostringstream oss;
    
    for (size_t i = 0; i < elements.size(); i++) {
        if (i > 0) oss << separator;
        oss << elements[i];
    }
    
    return oss.str();
}

int main() {
    std::vector<std::string> words = {"May", "the", "Force", "be", "with", "you"};

    std::string result = implode(", ", words);
    
    std::cout << result << std::endl;  
}



/*
run:

May, the, Force, be, with, you

*/

 



answered Dec 5, 2025 by avibootz
0 votes
#include <iostream>
#include <vector>
#include <string>

std::string implode(const std::string& separator, const std::vector<std::string>& elements) {
    std::string result;
    
    for (size_t i = 0; i < elements.size(); i++) {
        if (i > 0) result += separator;
        result += elements[i];
    }
    
    return result;
}

int main() {
    std::vector<std::string> words = {"May", "the", "Force", "be", "with", "you"};
    
    std::cout << implode("-", words) << std::endl; 
}



/*
run:

May-the-Force-be-with-you

*/

 



answered Dec 5, 2025 by avibootz
0 votes
#include <iostream>
#include <numeric> // accumulate
#include <vector>
#include <string>

std::string implode(const std::string& separator, const std::vector<std::string>& elements) {
    if (elements.empty()) return "";
    
    return std::accumulate(std::next(elements.begin()), elements.end(), elements[0],
        [&separator](const std::string& a, const std::string& b) {
            return a + separator + b;
        });
}

int main() {
    std::vector<std::string> words = {"May", "the", "Force", "be", "with", "you"};
    
    std::cout << implode(" | ", words) << std::endl;  
}



/*
run:

May | the | Force | be | with | you

*/

 



answered Dec 5, 2025 by avibootz

Related questions

...