日常开发中,经常需要用到字符串格式化,将某个数字放进字符串里面。最开始C语言时应该都使用过prinft
:
std::string strName = "aLi";
int nAge = 23;
printf("My name is %s. My age is %d", strName, nAge);
但是printf
是直接输出到控制台的,有时候我们需要在某些地方使用到,就需要用到字符串来存储这个已格式化的字符串。下面总结几种常用的字符串格式化的方法。
- MFC的
CString
最简单粗暴,调用成员函数Format
即可:
WCHAR wstrName[100] = L"aLi";
int nAge = 23;
CString cstrName;
cstrName.Format(_T("My name is %s. My age is %d"), wstrName, nAge);
但是,MFC的一些设计存在一些问题,有crash的风险,MFC的东西都尽可能地少用,而且有些项目也并没有使用到MFC。
- windwos下,可以使用
sprintf_s
(其Unicode版本为swprintf_s
)
std::wstring strCmd;
int64_t i64Age = 23000000000;
std::wstring strName = L"啊里";
wchar_t szCmd[1024] = { 0 }