首页 > 其他 > 详细

printf函数中格式化字符的使用探究

时间:2021-01-02 22:49:43      阅读:38      评论:0      收藏:0      [点我收藏+]

在学习PHP的过程中对于此类函数的使用方法有了一些新的体会,特记录在此。

我们都知道php中有多个此类的函数,它们的作用都是将字符串按照指定的格式进行处理。在手册中说明的很详细,如下:

参数描述
format

必需。规定字符串以及如何格式化其中的变量。

可能的格式值:

  • %% - 返回一个百分号 %
  • %b - 二进制数
  • %c - ASCII 值对应的字符
  • %d - 包含正负号的十进制数(负数、0、正数)
  • %e - 使用小写的科学计数法(例如 1.2e+2)
  • %E - 使用大写的科学计数法(例如 1.2E+2)
  • %u - 不包含正负号的十进制数(大于等于 0)
  • %f - 浮点数(本地设置)
  • %F - 浮点数(非本地设置)
  • %g - 较短的 %e 和 %f
  • %G - 较短的 %E 和 %f
  • %o - 八进制数
  • %s - 字符串
  • %x - 十六进制数(小写字母)
  • %X - 十六进制数(大写字母)

附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

  • + (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记)
  • ‘ (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。)
  • - (左调整变量值)
  • [0-9] (规定变量值的最小宽度)
  • .[0-9] (规定小数位数或最大字符串长度)

注释:如果使用多个上述的格式值,它们必须按照上面的顺序进行使用,不能打乱。

arg1 必需。规定插到 format 字符串中第一个 % 符号处的参数。
arg2 必需。规定插到 format 字符串中第二个 % 符号处的参数。
arg++ 可选。规定插到 format 字符串中第三、四等等 % 符号处的参数。

format的格式比较好理解,无非就是指定不同的数据类型罢了。我们来着重看一下下面的插入到%和数字格式之间的附加格式。

首先来看一下占位符的作用:

当格式化文本中的%号比所传递的参数要多的时候,需要使用占位符,占位符由数字和\$组成。这下我们明白了,前面的这个数字,指的就是参数的位置

第一个参数为1\$,第二个参数为2\$,依次类推。

技术分享图片

 

 

可以看到在格式化文本中给出了4个格式化变量串,但是只给了两个参数,因此我们需要用占位符来说明,这几个格式化字串使用的是哪个参数。

下图为运行结果,可以看到可以正常输出。

技术分享图片

 

接下来咱们讨论一下其它的附加格式化字符的使用。先来试验一下指定数字文本的长度:

技术分享图片

 

 

 直接在占位符后面输入05代表用数字0作为填充前缀,格式化后的数字总长度为5。运行后结果正确。

技术分享图片

 

 

可不可以将填充字符更换为其它字符呢?比如换成*号 ?

我们来直接将0换成*号试试不就知道了嘛!

技术分享图片

 

 运行后的结果却和我们想像的不一样:

技术分享图片

 

 忽然想到是不是没有加填充说明符呢?

技术分享图片

 

 果然加上后显示出了正确的结果:

 技术分享图片

 

总结:除了0不用指定填充说明符外,其它的字符都必须用其指定。

接着来试验指定小数位数:

技术分享图片

 

 技术分享图片

 

 带有填充效果的小数

技术分享图片

 

 技术分享图片

 

 好了,接下来实验正负号和左移符号,为了方便看的清楚一些,我把数字的长度改为11:

技术分享图片

 

 技术分享图片

 

最后一个左调整变量值,这个从字面理解有些晦涩,还是用代码来说明它的作用:

为了看的更清楚,多加一行以做比较

技术分享图片

 

 技术分享图片

 

 相信大家已经明白左调整变量值的作用了,对于这些参数的用法也有了更深的理解。希望能给大家一些小小的帮助!

 

 

 

 

 

 

 

 

printf函数中格式化字符的使用探究

原文:https://www.cnblogs.com/walgn/p/14222567.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!