1. 任务描述
按要求继续写完代码,对齐数据,完成输出
2. 代码实现
/*
*Copyright(c)2019,yafangma@126.com
*All rights reserved.
*文件名称:char_justify.cpp
*作 者:马娅芳
*完成日期:2019.1.5
*版 本 号: v1.0
*问题描述:按要求继续写完代码,对齐数据,完成输出
*程序输入:
*程序输出:
*/
#include <stdio.h>
int main(){
printf("Name\tAge\tSalary\taddr\n");
printf("Tom\t%d\t%6.1f\t%s\n", 20, 314.2, "NewYork");
printf("Jerry\t%d\t%6.1f\t%s\n", 22, 7876.4, "Beijing");
printf("Blotu\t%d\t%6.1f\t%s\n", 9, 5.5, "Shanghai");
return 0;
}
3. 运行结果
4. 知识点总结
代码实现过程中出现的错误:使用 printf 函数输出 addr 一栏的数据时,没有给各地址加双引号,编译时报错,错误提示显示没有对 NewYork, Beijing,Shanghai 进行声明。加上双引号后,地名成为字符串常量,可以正常输出。
(1)字符常量:用单撇号括起来的一个字符。字符常量区分大小写字母。
‘a’ 和 ‘A’ 是不同的两个字符常量,对应的ASCII 码分别为97,65。
(2)字符串常量:用双撇号括起来的部分就是字符串常量。
(3)字符串存储:用连续的字节存储字符串,每个符号占一个字节。
字符串常量 ‘‘abc’’ 在内存中占4个字节,而不是3个字节,这是因为编译系统会自动加一个 ‘\0’ 作为字符串的结束标志。’\0’ 不是字符串的一部分,只作为字符串的结束标志。
字符串在内存中的存储如下图: