#include <string>
#include <vector>
/**
* 格式化字符串
*
* \param pszFmt 格式描述
* \param ... 不定参数
* \return 格式化的结果字符串
*/
std::string format(const char *pszFmt, ...)
{
std::string str;
va_list args;
va_start(args, pszFmt);
{
int nLength = _vscprintf(pszFmt, args);
nLength += 1; //上面返回的长度是包含\0,这里加上
std::vector<char> chars(nLength);
_vsnprintf(chars.data(), nLength, pszFmt, args);
str.assign(chars.data());
}
va_end(args);
return str;
}
//使用示例:
char c = 'A';
std::string str = format("c=%c", c); // c=A
int i = 10;
str = format("i=%d", i); // i=10
double d = 1.5;
str = format("d=%f", d); // d = 1.500000
std::string strName = ("txdy");
str = format("I am %s", strName.c_str()); // I am txdy这样,就可以很方便的格式化字符串了,程序中使用字符串是最常见的操作了,自己也可以封装一个CString类将其归类起来,方便以后的项目中使用。
本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!