C++字符串格式化(FormatString)
2015-12-31 12:47
495 查看
#include <string> #include <vector> using namespace std; string FormatString(const char *lpcszFormat,...) { string strResult; if (NULL != lpcszFormat) { va_list marker = NULL; va_start(marker, lpcszFormat); //初始化变量参数 size_t nLength = _vscprintf(lpcszFormat, marker) + 1; //获取格式化字符串长度 std::vector<char> vBuffer(nLength, '\0'); //创建用于存储格式化字符串的字符数组 int nWritten = _vsnprintf_s(&vBuffer[0], vBuffer.size(), nLength, lpcszFormat, marker); if (nWritten>0) { strResult = &vBuffer[0]; } va_end(marker); //重置变量参数 } return strResult; } wstring FormatWstring(const wchar_t *lpcwszFormat,...) { wstring strResult; if (NULL != lpcwszFormat) { va_list marker = NULL; va_start(marker, lpcwszFormat); //初始化变量参数 size_t nLength = _vscwprintf(lpcwszFormat, marker) + 1; //获取格式化字符串长度 std::vector<wchar_t> vBuffer(nLength, '\0'); //创建用于存储格式化字符串的字符数组 int nWritten = _vsnwprintf_s(&vBuffer[0], vBuffer.size(), nLength, lpcwszFormat, marker); if (nWritten>0) { strResult = &vBuffer[0]; } va_end(marker); //重置变量参数 } return strResult; }
相关文章推荐
- PCL库和C++2011兼容问题
- 转载——C++控制台贪吃蛇代码
- C++中智能指针的工作原理和简单实现
- C/C++ 输入一个数 判断是否是素数
- 【C++】基础知识—内联(置)函数及register关键字
- C++中的基类与派生类
- 聚类算法-Hierarchical(MIN)-C++
- Java调用C/C++代码-生成java调用的DLL
- 聚类算法-K-means-C++实现
- C/C++ 随机数
- VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*
- 聚类算法-DBSCAN-C++实现
- 表达式求值c语言
- iOS OC语言: Block底层实现原理 (转载)
- 用C++ TR1 生成随机数
- C语言-算法题
- c 语言 size_t 类型
- 乘积配对,找出输入数据中所有两两相乘的积为 12的个数--C++
- Windows Sqlserver Automatic Log Audit Via C/C++
- Visual Studio 2008 C++ 内存泄露检测