c语言居中字符串,格式化字符串

在学习字符串的过程中,我们在前面讲了很多使用方法,实际在使用的过程中,我们经常会需要将字符串格式化,通过格式化输出我们需要的结果。

格式化字符串就是在先创建一个空间,然后再这个空间留几个位置,然后根据需求填入相应的内容,这里留出的位置相当于占位符,格式化字符串有两种方式。一种是使用%操作符,一种是使用format()方法。

1. %操作符

%操作符在我们格式化字符串的时候十分方便,它的语法结构如下:‘%[+][-][0][.m]格式化字符’%iteration

1) iteration为我们要填入的内容,第一个%后面为我们要选择的格式。

2) [+]为右对齐‘+’为我们可以填入的参数,数字大小代表对齐宽度。

3) [-]为左对齐‘-’为我们可以填入的参数,数字大小代表对齐宽度。

4) [.m]中的m为可选精度,表示保留小数点后几位小数。

5) 格式化字符为我们需要选定的格式,它的常用类型为字符串%s、十进制整数%d、单字符%c、浮点数%f、十六进制数%x、八进制数%o、字符%%。

关于%操作符的理解可能比较抽象,我们通过例子来了解一下它。我们比较常用的就是输出一个浮点数,小数点后保留2位小数,代码如下:>>> my_str =66666.66666

>>> print('保留2位小数格式为:%.2f'%my_str)保留2位小数格式为:66666.67

保留小数的时候会自动进行四舍五入操作,在使用的时候主要注意它的形式,我们可以选择一个或多个组合在一起来格式化字符串,上面是我们使用了一种格式化操作,格式化部分为‘%.2f’,然后再字符串的最后用%连接相应字符串即直接等同于相应内容。

我们再介绍一下对齐方式的使用:>>> for i in range(5):

...     print('%-5d'%i,end=' ')#左对齐方式

...     print('%5d'%i)#右对齐方式

...

0         0

1         1

2         2

3         3

4         4

5是代码对齐的宽度,我们采用左右对齐,第一列为左对齐,宽度为5,然后不换行再次输出i,第二次输出为右对齐,因此输出入上所示。

关于%操作符就将到这里,大家在下面自己进行练习可以更快的去掌握这些知识。

2. format()方法

format()方法提供了更多的方法去格式化字符串,它的基本语法是通过‘{}’和‘:’来代替‘%’。它的语法格式为:

str.format()

我们通过例子来看一下:namea = '小明'

nameb = '小华'

print('{}是{}的好朋友'.format(namea,nameb))

这个例子是最简单的使用方式,但是既然这个方法是后来引入的方法,那么它一定有它比较好用的地方,下面我们介绍一下它的具体方法。

在占位符里结构可以为:{[index[:[fill]align][width][#][.k][type]]}

通过图来看一下这个结构:

7785d4627275593e5d300bce2e569573.png

在上面那个例子中只包含了简单的‘{}’,如果我们加以修饰的话可以使用上面的这些结构,我们来一一说明:

1) index为索引位置,我们可以给他一个数字,用来指定对象在列表中的索引位置,索引值从0开始,如果没有索引值,按从左到右的顺序。像上面的例子,我们如果加了索引值:namea = '小明'

nameb = '小华'

print('{1}是{0}的好朋友'.format(namea,nameb))

那么他们的位置就进行了一个调换。

2) ‘:’为后续内容使用的前提,使用后面操作的时候都要加一个‘:’。

3) fill可以选择一个参数作为空白填充的字符数。

4) width是可以选择一个参数来指定长度。

5) align可以选择一个参数作为对齐方式,参数为‘>’代表右对齐,‘

我们看个例子:>>> my_str = 'dotcpp'

>>> print('{:@>10}'.format(my_str))

@@@@dotcpp

这个例子里我们选择了右对齐,然后宽度为10,空白字符用符号@代替。

6) ‘#’为进制前缀。

7) .k中的k是可选参数,用来表示小数点后保留的数字。

8) type可选择参数来指定类型,常用的有S来表示字符串、D来表示十进制整数、%来表示百分比、f或者F表示浮点数。

下面我们在通过一个例子来使用一下上述这些方法。my_str = 'dotcpp'#先定义两个字符串

my_string = 123456.654321

print('my_str:{1:!^20s}\nmystring:{0:$^20.2f}'.format(my_string,my_str))

输出为:my_str:!!!!!!!dotcpp!!!!!!!

mystring:$$$$$123456.65$$$$$$

对于my_str,‘1‘为它的索引位置,‘!’来替代空白字符,‘^’代表位置居中,20为宽度,‘s’为字符串类型。

对于my_string,‘0’位它的索引位置,‘$’来代替空包字符,‘^’代表位置居中,20位宽度,‘.2’为小数点后保留2位小数,’f‘为浮点类型。

3. 总结

关于字符串就讲到这里,字符串的使用是十分频繁的,所以大家一定要通过习题去练习并掌握它。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值