#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;
}