如果要按表格形式打印一组字符串,你就需要将字符串打印成指定长度。利用printf()函数可以很方便地实现这一点,请看下例:
- # include <stdio.h>
- char * data[25] = {
- "REGION", "--Q1--", "--Q2--", "--Q3--", "--Q4--",
- "North" , "10090. 50" , "12200. 10" , "26653.12" , "62634. 32" ,
- "South", "21662.37", "95843.23", "23788.23", "48279.28",
- "East", "23889.38", "23789.05", "89432.84", "29874.48",
- "West", "85933.82", "74373.23", "78457.23", "28799.84" };
-
- void main (void)
- {
- int x;
- fox (x = 0, x<25; x+ + )
- {
- if ((x % 5) == 0&&(x !=0))
- printf("\n");
- printf (" %-10. 10s" , data[x]) ;
- }
- }
在上例中,字符串数组char *data[]中包含了某年4个地区的销售数据。显然,你会要求按表格形式打印这些数据,而不是一个挨一个地毫无格式地打印这些数据。因此,上例中用下述语句来打印这些数据:
printf("%-10.10s",data[x]);
参数"%-10.10s"指示printf()函数按10个字符的长度打印一个字符串。在缺省情况下,printf()函数按右对齐格式打印字符串,但是,在第一个10的前面加上减号(-)后,prinft()函数,就会使字符串左对齐。为此,printf()函数会在字符串的尾部加入空格,以使其长度达到10个字符。上例的打印输出非常整洁,类似于一张表格,如下所示:
REGION --Q1-- --Q2-- --Q3-- --Q4--
North 10090.50 12200.10 26653.12 62634.32
SOuth 21662.37 95843.23 23788.23 48279.28
East 23889.38 23789.05 89432.84 29874.48
West 85933.82 74373.23 78457.23 28799.84