字符串长度控制输出

  1. 原样输出字符串:
    printf("%s", str);

    这里有个小坑:

char a[5][10];
......
cout << a[0] << endl;

这里输出的不是a[0][0]–a[0][9]的10个字符,而是a[0][0]–a[5][10]全部的50个字符,相当于printf里的%s,因为二维数组在电脑里是一维方式存储,从a[0]地址开始后的所有字符均被输出

  1. 输出指定长度的字符串, 超长时不截断, 不足时右对齐:
    printf("%Ns", str);
    –N 为指定长度的10进制数值

  2. 输出指定长度的字符串, 超长时不截断, 不足时左对齐:
    printf("%-Ns", str);
    –N 为指定长度的10进制数值

  3. 输出指定长度的字符串, 超长时截断, 不足时右对齐:
    printf("%N.Ms", str);
    –N 为最终的字符串输出长度
    –M 为从参数字符串中取出的子串长度

  4. 输出指定长度的字符串, 超长时截断, 不足时左对齐是:
    printf("%-N.Ms", str);
    –N 为最终的字符串输出长度
    –M 为从参数字符串中取出的子串长度

注意,所谓超长时截断用到的M并不是只在超长时才起作用,而是不管你有没有超长,都必须截取这么长。所以
printf("%-5.2", “123”)的输出为:
12空格空格空格
只截取了2个字符,其他的用空格填补,而且左对齐。

  1. 上述N,M是可以动态指定的,方法是用代替M或者N,然后在参数列表里加上一个数字参数。例子:
    printf("%-
    .*s", 5,2,“123”);与上面的例子效果一样。
    printf("%*s", 5, “123”);表示输出长度为5, 如果超长也不截断,不够的话填补,右对齐。
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值