版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
程序清单4.1 talkback.c程序
// talkback.c -- 演示与用户交互#include#include// 提供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); return0; }
该程序包含以下特性。
用数组(array)储存字符串(character string)。在该程序中,用户输入的名被储存在数组中,该数组占用内存中40个连续的字节,每个字节储存 一个字符值。
.
使用%s转换说明来处理字符串的输入和输出。注意,在scanf()中, name没有&前缀,而weight有(稍后解释,&weight和name都是地址)。
.
用C预处理器把字符常量DENSITY定义为62.4。
.
用C函数strlen()获取字符串的长度。
4.2 字符串简介
字符串(character string)是一个或多个字符的序列,如下所示:
“Zing went the strings of