广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中怎么格式化字符串
  • 284
分享到

C++中怎么格式化字符串

2023-06-17 16:06:49 284人浏览 独家记忆
摘要

c++中怎么格式化字符串,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprin

c++中怎么格式化字符串,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。

sprintf 是个变参函数,定义如下:

  1. int sprintf( char *buffer, const char *fORMat 
    [, argument] ... ); 

除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:C++格式化字符串上。

printf 和sprintf 都使用C++格式化字符串来指定串的格式,在格式串内部使用一些以"%"开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要 的字符串。

sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代itoa。

如:

//把整数123 打印成一个字符串保存在s 中。  sprintf(s, "%d", 123); //产生"123"可以指定宽度,不足的左边补空格:  sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"当然也可以左对齐:  sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"

也可以按照16 进制打印:

sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐  sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐

这样,一个整数的16 进制字符串就很容易得到,但我们在打印16 进制内容时,通常想要一种左边补0 的等宽格式,那该怎么做呢?很简单,在表示宽度的数字前面加个0 就可以了。

sprintf(s, "%08X", 4567); //产生:"000011D7"

上面以"%d"进行的10 进制打印同样也可以使用这种左边补0 的方式。

这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1 的内存16 进制表示形式,在Win32 平台上,一个short 型占2 个字节,所以我们自然希望用4 个16 进制数字来打印它:

short si = -1;  sprintf(s, "%04X", si);

产 生"FFFFFFFF",怎么回事?因为spritnf 是个变参函数,除了前面两个参数之外,后面的参数都不是类型安全的,函数更没有办法仅仅通过一个"%X"就能得知当初函数调用前参数压栈时被压进来的到底 是个4 字节的整数还是个2 字节的短整数,所以采取了统一4 字节的处理方式,导致参数压栈时做了符号扩展,扩展成了32 位的整数-1,打印时4 个位置不够了,就把32 位整数-1 的8 位16 进制都打印出来了。

如果你想看si 的本来面目,那么就应该让编译器做0 扩展而不是符号扩展(扩展时二进制左边补0 而不是补符号位):

sprintf(s, "%04X", (unsigned short)si);

就可以了。或者:

unsigned short si = -1;  sprintf(s, "%04X", si);

sprintf 和printf 还可以按8 进制打印整数字符串,使用"%o"。注意8 进制和16 进制都不会打印出负数,都是无符号的,实际上也就是变量的内部编码的直接的16 进制或8 进制表示。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网其他教程频道,感谢您对编程网的支持。

--结束END--

本文标题: C++中怎么格式化字符串

本文链接: https://www.lsjlt.com/news/290961.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++中怎么格式化字符串
    C++中怎么格式化字符串,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprin...
    99+
    2023-06-17
  • C#中怎么格式化字符串
    C#中怎么格式化字符串,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C#格式化字符串之格式化数字格式字符 说明和关联属性c、C 货币格式。d、D 十进制格式。e、E 科学计...
    99+
    2023-06-17
  • C#中GridView怎么格式化字符串
    这篇文章主要介绍“C#中GridView怎么格式化字符串”,在日常操作中,相信很多人在C#中GridView怎么格式化字符串问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#中GridView怎么格式化字符串...
    99+
    2023-06-17
  • JS怎么格式化字符串
    本文小编为大家详细介绍“JS怎么格式化字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS怎么格式化字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。格式化字符串<...
    99+
    2022-10-19
  • Python字符串怎么格式化
    这篇文章主要介绍了Python字符串怎么格式化的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python字符串怎么格式化文章都会有所收获,下面我们一起来看看吧。什么是格式化?定义:一个固定字符串中有部分成员(元...
    99+
    2023-06-29
  • Python怎么格式化字符串
    本篇内容主要讲解“Python怎么格式化字符串”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么格式化字符串”吧!使用对比我们先来看下 Python 中已经存在的这几种格式化字符串的...
    99+
    2023-06-02
  • Python中怎样格式化字符串
    这篇文章给大家介绍Python中怎样格式化字符串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. %-formatting格式化字符串最早的格式化是用%(百分号), 它这么用:In&...
    99+
    2022-10-19
  • C C++ 题解LeetCode1417重新格式化字符串
    目录题目描述整理题意解题思路分析具体实现复杂度分析代码实现总结题目描述 题目链接:1417. 重新格式化字符串 给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。 请...
    99+
    2022-11-13
    C C++ 重新格式化字符串 C C++ 格式化字符串
  • Python-字符串格式化
    python字符串格式化 字符串的格式化使用f字符串使用format使用%运算符 字符串的格式化 在python3中有三种格式化方式 使用占位符格式化 2.使用format格式化 3....
    99+
    2023-10-08
    python 开发语言
  • Python字符串格式化
    字符串格式化话的标准形式为 "Template String " % (Data) 标准形式 %+8.6f 转换开始标志% 转换标志 最小宽度 精度,用小数点隔开 转换类型 转换类型表见pythonEssentialRefer...
    99+
    2023-01-31
    字符串 Python
  • python 中的字符串格式化
    %方式的调用 1。格式化代码 代码 意义 s 字符串,使用str r 字符串,使用repr不使用str c 字符 d 十进制的数字 i 整数 u 无符号整数 o 八进制 x 十六进制 X 大...
    99+
    2023-01-30
    字符串 python
  • Go语言字符串怎么格式化
    这篇文章主要介绍“Go语言字符串怎么格式化”,在日常操作中,相信很多人在Go语言字符串怎么格式化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言字符串怎么格式化”的疑惑...
    99+
    2022-10-18
  • 怎么在线格式化json字符串
    您可以使用在线的 JSON 格式化工具来格式化 JSON 字符串。以下是一些常用的在线 JSON 格式化工具:1. JSON.cn:...
    99+
    2023-09-01
    json
  • mysql字符串格式化方式
    目录mysql字符串格式化mysql格式化字符串长度不够补01.前面补零 2.后面补0mysql字符串格式化 今天有一个需求,mysql查询返回的格式为:80% ,而数据库中存储的是0.89的格式 sql写法如...
    99+
    2022-08-26
  • Python字符串格式化方式
    目录什么是格式化?使用格式化的场景和目的格式化的三种方式根据类型定义的格式化 - %s关于整数的输出关于浮点数的输出关于字符串的输出字符串格式化函数 - format()format...
    99+
    2022-11-10
  • python字符串格式化(%格式符和format方式)
    目录%格式符format方式总结Python的字符串格式化有两种方式:%格式符方式,format方式 %格式符 %[(name)][flags][width].[precision]...
    99+
    2022-11-13
  • Python之字符串格式化
    Python目前提供的字符串格式化方式有两种:百分号方式format方式这两种方式在Python2和Python3中都适用,百分号方式是Python一直内置存在的,format方式为近期才出来的。旧式%格式化参数格式%[(name)][fl...
    99+
    2023-01-31
    字符串 Python
  • python3的字符串格式化
    我们知道Python3.x引入了新的字符串格式化语法。不同于Python2.x的"%s %s "%(a,b)  Python3.x是"{0} {1}".format(a,b) '{0},{1}'.format('jack',22)Out[3...
    99+
    2023-01-31
    字符串
  • python字符串处理以及字符串格式化
    一、python字符串处理 目录: 1.算长度(len),某个元素出现的次数(count) 2.切片   [ ],repr:把不可见字符显示出来 3.查找 #find,rfind从右边查找 4.字符串和列表之间的转换(split,join...
    99+
    2023-01-30
    字符串 python
  • python3怎么用f-strings格式化字符串
    这篇文章将为大家详细讲解有关python3怎么用f-strings格式化字符串,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。用f-strings格式化字符串(Python 3.6+)这是自Python &...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作