C++字符串格式化的几种方式

本文详细介绍并对比了三种在C++中格式化字符串的方法:使用snprintf、boost::format和stringstream。通过具体示例,展示了如何利用这些方法将变量插入到预定义的字符串模板中,为C++开发者提供了实用的编码技巧。

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

  1. 使用snprintf格式化字符串
  2. 使用boost::format格式化字符串
  3. 使用stringstream格式化字符串

具体示例

  1. 使用snprintf格式化字符串
#include <stdio.h>
using std::string;
// 准备数据
string haha("haha");
int num = 3;
// 准备格式
string fmt("test string: %s. test number: %d");
char targetString[1024];
// 格式化,并获取最终需要的字符串
int realLen = snprintf( targetString, 
						sizeof(targetString), 
						fmt.c_str(), 
						haha.c_str(), 
						num );

参考链接http://www.cplusplus.com/reference/cstdio/snprintf/

  1. 使用boost::format格式化字符串
#include "boost/format.hpp"
// 准备数据
string haha("haha");
int num = 3;
// 准备格式
boost::format fmt("test string: %s. test number: %d");
// 格式化
fmt % haha % num;
// 获取最终需要的字符串
string targetString = fmt.str();

参考链接https://www.boost.org/doc/libs/1_70_0/libs/format/example/sample_formats.cpp

  1. 使用stringstream格式化字符串
#include <sstream>
using std::stringstream;
// 准备数据
string haha("haha");
int num = 3;
// 准备根据格式造字符串流
stringstream fmt;                       /* 或者使用 ostringstream */
// 造字符串流
fmt << "test string: " << haha << ". test number: " << num;
// 获取最终需要的字符串
string targetString = fmt.str();

参考链接http://www.cplusplus.com/reference/ostream/ostream/operator<</

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值