当前位置:网站首页 > 技术博客 > 正文

c++string format



在Python中,我们可以使用以下代码方便的格式化字符串

 
  

不仅是Python,在其他高级语言中同样也可以很好地对字符串进行格式化。

本文将对C++中字符串格式化方法进行总结,包括:

  • C语言中如何进行字符串格式化
  • C++20之前的版本如何进行字符串格式化
  • C++20的字符串格式化标准库函数std::format

在C语言中,我们可以使用

 
  

进行字符串格式化,例如

 
  

在C++中,C++标准库在C++20之前并没有给std::string字符串类提供一个标准的字符串格式化函数,我们只能通过使用字符串流来拼凑字符串,比如

 
  

这种代码真的是又臭又长,特别是当格式化参数很多时。

本小节介绍简单好用跨平台的C++20之前的字符串格式化开源工具。

1.3.1 format

Github地址:https://github.com/arajar/format

这是一个只有单个头文件的C++11标准的std::string字符串格式化工具,其只有一个文件,头文件代码如下

 
  

使用方法

 
  

1.3.2 sformat

Github:https://github.com/mmc1993/sformat

这同样是一个只有单个头文件的字符串格式化工具,在使用时我们只需要包含头文件,头文件的代码内容如下

 
  

从上述代码上看,我个人认为其实现的代码没有1.1.1节format简洁,并且其最大可支持的格式化参数为24个,这也是这个工具的缺陷。

使用方法

 
  

我们可以使用可变参数模板+定义一个字符串格式化函数

 
  

使用方法

 
  

经不住广大群众的吐槽,C++20标准终于推出了标准库的字符串格式化函数,该函数既支持也支持宽字符的格式化。

函数原型

 
  

函数使用

 
  

以上代码只能在支持C++20标准的编译器上编译通过,但是不得不感叹一句C++苦字符串格式化久矣!!!

欢迎访问我的个人站:https://www.stubbornhuang.com/

版权声明


相关文章:

  • windows tftp服务器2025-11-17 18:01:04
  • 线程的互斥和同步之间的区别和联系2025-11-17 18:01:04
  • css中设置溢出隐藏2025-11-17 18:01:04
  • 计算机c语言基础知识2025-11-17 18:01:04
  • string数组的长度2025-11-17 18:01:04
  • sqlmap安装失败是什么原因2025-11-17 18:01:04
  • c线程的同步与异步2025-11-17 18:01:04
  • knn和聚类2025-11-17 18:01:04
  • java 集合类框架的最佳实践有哪些?2025-11-17 18:01:04
  • js事件方法2025-11-17 18:01:04