本章介绍以下内容:
函数:strlen()
关键字:const
字符串
如何创建、存储字符串
如何使用strlen()函数获取字符串的长度
用C预处理器指令#define和ANSIC的const修饰符创建符号常量
本章重点介绍输入和输出。与程序交互和使用字符串可以编写个性化的程序,本章将详细介绍C语言的两个输入/输出函数:printf()和scanf()。学会使用这两个函数,不仅能与用户交互,还可根据个人喜好和任务要求格式化输出。最后,简要介绍一个重要的工具——C预处理器指令,并学习如何定义、使用符号常量。
与前两章一样,本章以一个简单的程序开始。程序清单4.1与用户进行简单的交互。为了使程序的形式灵活多样,代码中使用了新的注释风格。
程序清单4.1 talkback.c程序
// talkback.c -- 演示与用户交互
#include <stdio.h>
#include <string.h> // 提供strlen()函数的原型
#define DENSITY 62.4 // 人体密度(单位:磅/立方英尺)
int main()
{
float weight, volume;
int size, letters;
char name[40]; // name是一个可容纳40个字符的数组
printf("Hi! What's your first name?\n");
scanf("%s", name);
printf("%s, what's your weight in pounds?\n", name);
scanf("%f", &weight);
size = sizeof name;
letters = strlen(name);
volume = weight / DENSITY;
printf("Well, %s, your volume is %2.2f cubic feet.\n",
name, volume);
printf("Also, your first name has %d letters,\n",
letters);
printf("and we have %d bytes to store it.\n", size);
return 0;
}
运行talkback.c程序,输入结果如下:
Hi! What's your first name?
Christine
Christine, what's your weight in pounds?
154
Well, Christine, your volume is 2.47 cubic feet.
Also, your first name has 9 letters,
and we have 40 bytes to store it.
该程序包含以下新特性。
用数组(array)储存字符串(character string)。在该程序中,用户输入的名被储存在数组中,该数组占用内存中40个连续的字节,每个字节储存一个字符值。
使用%s转换说明来处理字符串的输入和输出。注意,在scanf()中,name没有&前缀,而weight有(稍后解释,&weight和name都是地址)。
用C预处理器把字符常量DENSITY定义为62.4。
用C函数strlen()获取字符串的长度。
对于BASIC的输入/输出而言,C的输入/输出看上去有些复杂。不过,复杂换来的是程序的高效和方便控制输入/输出。而且,一旦熟悉用法后,会发现它很简单。
本人于2023年3月18日22:23:03学习完以上内容,特与此记录并分享。
© 版权声明
文章版权归作者所有,如需转载请联系作者。若文章内容侵犯了您的权益,请通过网站底部联系方式联系我们处理(本站具有最终解释权)。如有不便之处,敬请谅解。
THE END
暂无评论内容