c语言字符串格式化输出

C语言的printf函数提供了丰富的格式化输出功能,使得可以精确控制输出数据的格式。这里给出一个更完整的指南,包括常用的格式说明符、修饰符以及它们的用法。

基本格式说明符

  • %d%i:输出有符号十进制整数。
  • %u:输出无符号十进制整数。
  • %f:输出十进制浮点数。
  • %lf:输出双精度浮点数。在C99标准之前,printf%f来输出double,因为float类型的参数会被提升为double
  • %e%E:以科学计数法输出浮点数。
  • %g%G:根据数值大小自动选择%f%e%E)。
  • %x%X:以十六进制形式输出无符号整数。%x使用小写字母,%X使用大写字母。
  • %o:以八进制形式输出无符号整数。
  • %c:输出单个字符。
  • %s:输出字符串。
  • %p:输出指针的值。
  • %%:输出%字符本身。

修饰符

修饰符可以用来修改基本格式说明符的行为,例如调整输出宽度、精度或者是输出数据的长度。

  • 宽度:指定最小输出宽度。如果数据的实际宽度小于指定宽度,printf将用空格填充(或其他填充,见下文)以满足宽度要求。例如,%5d表示输出的整数至少占5个字符宽度。
  • 精度:对于整数,精度指定了最小的数字位数。如果整数的位数少于指定的精度,结果将在前面填充零以达到指定的位数。对于浮点数,精度指定了小数点后的数字位数。例如,%.2f表示浮点数输出时保留两位小数。精度通过在%和说明符之间添加点.和数字来指定,如%.3d
  • 左对齐:默认情况下,输出是右对齐的,如果你想要左对齐输出,可以在宽度前加-修饰符,例如%-5d
  • 显示正号:使用+修饰符会在正数前面显示加号,例如%+d
  • 空格:如果输出值为正数, (空格)修饰符会在值前面添加一个空格,为负数则不影响,这对齐输出有帮助,例如% d
  • #:对不同类型的输出有不同的影响。例如,对于八进制数前加0,十六进制数前加0x0X,对于%g%G保留小数点后的零。
  • 长度修饰符:指定整数或浮点数的大小或长度。例如,%ld用于long int类型,%llu用于unsigned long long int类型。
#include <stdio.h>

int main() {
    printf("%9d\n", 123);    // 右对齐,至少9个字符宽
    printf("%09d\n", 123);    // 右对齐,至少9个字符宽,不够补0 
    printf("%-9d\n", 123);   // 左对齐,至少9个字符宽
    printf("%.5d\n", 123);   // 至少5位数字,不足前面补零
    printf("%+d\n", 123);    // 显示正号
    printf("% d\n", 123);    // 正数前空格
    printf("%x\n", 255);     // 十六进制小写
    printf("%#x\n", 255);    // 十六进制小写,0x前缀
    printf("%.3f\n", 3.14159); // 浮点数,保留3位小数
    printf("%6.2f\n", 3.14159); // 至少6个字符宽,保留2位小数
    printf("%*.*f\n", 6, 2, 3.14159); // 使用参数指定宽度和精度

    return 0;
}

 运行结果如下:

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满城烟雨DLRY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值