您的位置:首页 > 编程语言 > C语言/C++

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: