Chinaunix首页 | 论坛 | 博客
  • 博客访问: 994180
  • 博文数量: 200
  • 博客积分: 5011
  • 博客等级: 大校
  • 技术积分: 2479
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-27 15:07
文章分类

全部博文(200)

文章存档

2009年(12)

2008年(190)

我的朋友

分类:

2008-11-26 14:50:11

+--------------------------------------------+
| 主题: 使用printf输出各种格式的字符串           |
|                                            |
| 日期: 2004-06-29                           |
+--------------------------------------------+

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

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

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

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

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

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

6. 上述N,M是可以动态指定的,方法是用*代替M或者N,然后在参数列表里加上一个数字参数。例子:
printf("%-*.*s", 5,2,"123");与上面的例子效果一样。
printf("%*s", 5, "123");表示输出长度为5, 如果超长也不截断,不够的话填补,右对齐。
阅读(11857) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~