博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CHAP4 字符串和格式化输入输出
阅读量:2242 次
发布时间:2019-05-09

本文共 2555 字,大约阅读时间需要 8 分钟。

2019-02-12      16:05:42

p72-p101

1 //talkback.c--演示与用户交互 2 #include 
3 #include
//提供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?\n");13 scanf("%s",name); //用%s转换说明来处理字符串的输入和输出14 printf("%s,what's your weight in pounds?\n",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.\n",name,volume);22 printf("Also,your first name has %d letters\n",letters);23 printf("and we have %d bytes to store it.\n",size);24 25 return 0;26 }

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

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

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

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

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

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

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

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

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

 运行结果:

1 Hi! What's your first name?2 fengxian3 fengxian,what's your weight in pounds?4 1205 Hi!fengxian,your volume is 1.923077 cubic feet.6 Also,your first name has 8 letters7 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

你可能感兴趣的文章
RNN与机器翻译
查看>>
用 Recursive Neural Networks 得到分析树
查看>>
RNN的高级应用
查看>>
TensorFlow-7-TensorBoard Embedding可视化
查看>>
轻松看懂机器学习十大常用算法
查看>>
一个框架解决几乎所有机器学习问题
查看>>
特征工程怎么做
查看>>
机器学习算法应用中常用技巧-1
查看>>
决策树的python实现
查看>>
了解 Sklearn 的数据集
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>
详解 LSTM
查看>>
按时间轴简述九大卷积神经网络
查看>>