CHAP4 字符串和格式化输入输出

2019-02-12      16:05:42

p72-p101

 1 //talkback.c--演示与用户交互
 2 #include <stdio.h>
 3 #include <string.h> //提供strlen()函数的原型
 4 #define DENSITY 62.4//用C预处理器定义字符常量——人体密度
 5 
 6 int main()
 7 {
 8     int size,letters;
 9     float weight,volume;
10     char name[40];//用数组储存字符串
11 
12     printf("Hi! What's your first name?
");
13     scanf("%s",name);     //用%s转换说明来处理字符串的输入和输出
14     printf("%s,what's your weight in pounds?
",name);//name无&前缀,name和&weight都是地址
15     scanf("%f",&weight);
16 
17     //对象大小,计算体积
18     size=sizeof name;
19     volume=weight/DENSITY;
20     letters=strlen(name);
21     printf("Hi!%s,your volume is %f cubic feet.
",name,volume);
22     printf("Also,your first name has %d letters
",letters);
23     printf("and we have %d bytes to store it.
",size);
24 
25     return 0;
26 }

 1、一般而言,C把函数库中相关的函数归为一类,并为每类函数提供一个头文件。

ex,printf ( )和scanf ( ) 都隶属标准输入和输出函数,使用stdio.h 头文件。string.h头文件包含了strlen ( )函数和其他一些与字符串相关的函数(如拷贝字符串的函数和字符串查找函数)

 2、char 类型数组——C语言没有专门用来储存字符串的变量类型,字符串都被储存在char类型的数组中。即用数组存储字符串。

      C语言用  (空字符 null character) 标记字符串的结束,空字符是非打印字符,ASCII码值为0。故数组的容量至少比待存储字符串的字符数多1.

      声明一个数组和声明一个变量:

 3、用 %s 转换说明来处理字符串的输入和输出    用%d转换说明来处理 int 的输入和输出    用 %f 转换说明来处理 float 的输入和输出

 一般而言,根据%s转换说明,scanf ( ) 只会读取字符串中的第一个单词,而非一整句。

4、用strlen ( ) 得到的是字符串中的字符数(包括空格和标点符号)

然而,sizeof运算符给出的数更大,因为他把字符串末尾不可见的空字符也计算在内。

 运行结果:

1 Hi! What's your first name?
2 fengxian
3 fengxian,what's your weight in pounds?
4 120
5 Hi!fengxian,your volume is 1.923077 cubic feet.
6 Also,your first name has 8 letters
7 and we have 40 bytes to store it.

 又如:

results:

5、CHAP 2 中介绍预处理器如何使用# include 包含其他文件的信息, 预处理器也可用来定义常量。

      #define PI 3.14159 

大写常量提高程序的可读性             编译程序时完成替换                 #define指令还可以定义字符和字符串常量

一言以蔽之:符号常量后面的内容被用来替换符号常量

6、const 限定符:可使用可打印不可更改,比#define 更灵活,CHAP12中讨论。

7、明示常量:符号常量。C头文件limit.h 和float.h 分别提供了与整数类型和浮点类型大小限制相关的详细i信息。

#define INT_MAX +32767             #define INT_MIN -32768

8、printf ( ) 函数是输出函数 ,scanf ( ) 函数是输入函数。工作原理几乎相同,都使用格式字符串和参数列表。

     

请求printf ( ) 函数打印数据的指令与待打印数据的类型 要 相匹配。

      如:打印整数时使用%d,打印字符时使用%c,打印浮点型数据使用%f,打印字符串使用%s——指定了如何把数据转化成可显示的形式

      控制输出格式:转换说明修饰符:P83  +    printf ( ) 中的标记:P84

      转换说明(亦称翻译说明)的意义( 本质理解):把二进制格式储存在计算机中的值转换成一系列字符(字符串)以便于显示。

9、 大部分C函数都有一个返回值,这是函数计算并返回给主调函数的值。printf  ( )函数也不例外。

      printf 的返回值:返回打印字符的个数。如果有输出错误,返回一个负值。     返回值可以像其他值一样使用:赋给变量、用于计算、作为参数传递。

10、scanf ( )

格式字符串:表明字符输入流的目标数据类型。

参数列表(和printf ( ) 的主要区别):使用指向变量的指针。

--------------------------------------------------------------------------------

11、C语言还有其他的输入函数,如getchar ( ) 和fgets ( )      更适合处理一些特殊情况——如读取单个字符或包含空格的字符串。

12、scanf ( )函数返回成功读取的项数。

13、使用足够大的固定字段宽度可以让输出整齐美观。(如想把数据打印成列时)

原文地址:https://www.cnblogs.com/wanwujiexu/p/10366826.html