jgoenetxea
11/4/2019 - 11:22 AM

How to string formater in C++11

#include <iostream>
#include <vector>
#include <string>
#include <cstdarg>
#include <cstring>

std::string string_format(const std::string& format, ...) {
    va_list args;
    va_start(args, format);
    size_t len = std::vsnprintf(nullptr, 0, format.c_str(), args);
    va_end(args);
    std::vector<char> vec(len + 1);
    va_start(args, format);
    std::vsnprintf(&vec[0], len + 1, format.c_str(), args);
    va_end(args);
    return &vec[0];
}

int main(void) {
    std::cout << "Start" << std::endl;

    char str[] = "%s => %d";
    std::cout << string_format(str, "apples", 7) << "\n";

    return 0;
}