windows下字符串格式化的方法总结

本文总结了在Windows环境下常用的字符串格式化方法,包括MFC的成员函数、Windows API的`wsprintf`和`swprintf`,以及标准C++的`std::stringstream`。在使用这些方法时需要注意MFC潜在的崩溃风险以及`wsprintf`处理中文可能出现的乱码问题,`std::stringstream`提供了一种更安全方便的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日常开发中,经常需要用到字符串格式化,将某个数字放进字符串里面。最开始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 };
    //对应的ANSI版本是 sprintf_s
    swprintf_s(szCmd, 1024, L"My name is %s. My age is %I64d", strName.c_str(), i64Age);
    strCmd = szCmd;

而且本人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值