他小的有

C++ std::string format 函数

    

#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=%c", 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类将其归类起来,方便以后的项目中使用。

本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!

5
分享到:

评论 0

取消
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址