#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类将其归类起来,方便以后的项目中使用。
本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!