#include <string.h>——提供strlen()函数的原型
#include <stdio.h>——提供scanf()和printf()函数的原型
#include <limits.h>——提供整数类型大小限制相关的详细信息——P79
#include <float.h>——提供浮点数类型大小限制相关的详细信息——P79
用C预处理器:
1.定义符号常量:
#define 符号常量名 符号常量的值
例:#define PI 3.1415926
2.定义字符串常量:
#define 字符串常量名 “字符串常量”
例:#define PHRAISE “you are an extraordinary being!”
char name [40]——定义一个能容纳40个字符的名为name的数组
name后面的方括号表明这是一个数组,方括号中的40表明该数组中的元素数量,char表明每个元素的类型。
在用scanf()输入字符串时,很多时候输入的字符串是多个单词(比如姓名zhao guangyuan),此时scanf()读到zhao后面的第一个空格,即停止读入,为了避免出现这样的情况,可在scanf()的下一行加入一句fflush(stdin);用以清空输入缓冲区。
scanf(“%s”,name)——此处读入为字符串,需要用%s来处理字符串的输入和输出,且name前面不需要加&(name指代一个地址)
strlen()函数给出字符串中的字符长度,sizeof()以字节为单位给出对象的大小
对于PRAISE,用strlen()得出的是字符串中的字符数(包括空格和标点符号),然而,sizeof()运算符给出的数更大,因为它把字符串末尾不可见的空字符也计算在内
建议所有情况下,sizeof均使用双括号表示成sizeof()
C90标准新增了const关键字,用于限定一个变量为只读
例:const int MONTHS=12; //MONTHS在程序中不可更改,值为12
prinf()和scanf()函数能让用户可以与程序交流,它们是输入/输出函数,简称为I/0函数
printf()中的标记:
待打印左对齐,即从字段的左侧开始打印该项—— -
例:printf(“%-10d\n”,pages);//字符宽度为10,且从左侧开始打印
有符号值若为正,则在值前面显示加号,若为负,则在值前面显示减号 ——+
有符号值若为正,则在值前面显示前导空格——空格
例:printf(“%10d\n”,pages);//字符宽度为10,在值前面显示前导空格
把结果转换为另一种形式——#
%5.3d——字符宽度为5,显示3位有效数字
printf("[%24.5s]\n",BLURB);——字符宽度为24,只打印5个字符,在值前面显示前导空格
参数传递:
scanf()把输入的字符串转换成整数,浮点数,字符和字符串,而printf()正好与它相反,它把整数,浮点数,字符和字符串转换成显示在屏幕上的文本。
如果用scanf()读取基本变量类型的值,在变量名前面加一个&
如果用scanf()把字符串读入字符数组中,不要使用&