实现std::string的format函数

std::string string_format(const char* format, ...)
{
#if 1 // 最大长度限制:1024 - 1
	char buff[1024] = {0};

	va_list args;
	va_start(args, format);
	vsprintf_s(buff, sizeof(buff), format, args);
	va_end(args);

	std::string str(buff);
	return str;
#else // 无长度限制
	va_list args;
	va_start(args, format);
	int count = vsnprintf(NULL, 0, format, args); // 使用vsnprintf:warning C4996; 使用vsnprintf_s:无法自动计算长度
	va_end(args);

	va_start(args, format);
	char* buff = (char*)malloc(count * sizeof(wchar_t));
	vsnprintf(buff, count, format, args);
	va_end(args);

	std::string str(buff, count);
	free(buff);
	return str;
#endif
}
参考

你可能感兴趣的:(C++)