
C语言中字符对齐问题
昨天遇到了这样一道题,作为初学者来说,苦恼于字符的对齐问题,在编译的时候对齐的效果试了几次才通过,后面发现了字符的对齐是可以直接实现的。问题如下:描述学生信息管理系统是学校教学管理的重要工具,现有一名学生基本信息如下:姓名-Jack,年龄-18,性别-Man,请按照输出样例的格式输出该学生的信息。输入描述:无输出描述:输出分为三行,分别为标题行,分隔行,信息行。第一行,标题行,每个标题之间间隔4个
昨天遇到了这样一道题,作为初学者来说,苦恼于字符的对齐问题,在编译的时候对齐的效果试了几次才通过,后面发现了字符的对齐是可以直接实现的。
问题如下:
描述
学生信息管理系统是学校教学管理的重要工具,现有一名学生基本信息如下:姓名-Jack,年龄-18,性别-Man,请按照输出样例的格式输出该学生的信息。
输入描述:
无
输出描述:
输出分为三行,分别为标题行,分隔行,信息行。
第一行,标题行,每个标题之间间隔4个空格。
第二行,分隔行,一共21个减号"-"。
第三行,信息行,每列输出信息和标题首字母对齐。输出样例如下:
Name Age Gender
---------------------
Jack 18 man
在这里,我们可以用空格去达到这样的效果。
代码:
int main()
{
printf("Name Age Gender\n");
printf("---------------------\n");
printf("Jack 18 man");
return 0;
}
运行结果:
但是用空格的话,有一个坏处,就是需要我们不断调整间距
所以在这介绍新的方法——字符的对齐
一般来说,我们在打印的时候使默认左对齐的,比如说打印:printf("%d\n",110);时就会默认靠左。
(1)左对齐
如果在%后加一个“-”标志就表示左对齐,例如
printf(“%-8d\n”,110);
这里表示我们要打印的数字宽度为8,如果要打印的位数小于8,则在后面补足空格;如果要打印的位数大于8,则打印所有的数字,不会截断。
(2)右对齐
printf(“%8”,110);
如果在%和d之间直接加上数字宽度,就表示。
这里我们表示数字宽度为8,如果要打印的位数小于8,左边补足空格;如果要打印的位数大于8,则打印所有的数字,不会截断。
依照这个规则,我们重新做题:
代码如下:
int main()
{
printf("%-8s%-7s%-6s\n", "Name", "Age", "Gender");
printf("---------------------\n");
printf("%-8s%-7s%-6s\n", "Jack", "18", "man");
return 0;
}
运行结果:
结果一样。
以上便是关于左右对齐的简单知识,本博客在于记录自己的学习历程、初学阶段遇到的问题与困惑,其中必有不足之处,还请看到的各位海涵,待他日功力长进,再修补阙漏。
更多推荐
所有评论(0)