C Primer Plus学习 四

// talkback.c 个能为您提供一些信息的对话程序
#include <stdio.h>
#include <string.h>      // 提供 strlen ()函数的原型
#define  DENSITY   62.4  //人的密度(单位是:英镑/每立方英尺)
int main(void)
{
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 in.\n", size);

//

printf ("//\n");

printf ("Hello* %s. %s\n", name, PRAISE);

printf ("Your name of %d letters occupies %d memory cells.\n", strlen (name), sizeof name);

printf ("The phrase of praise has %d letters", strlen (PRAISE));

printf ("and occupies %d memory cells.\n", sizeof PRAISE);




return 0;

}

该程序主要的新特性如下:

*它使用一个数组(array)来存放一个字符串。这里,某人的名字被读进这个数组中。该数组是内 存中一串连续的40个字节,其中每个字节都可存放一个字符值。

* 它使用%s转换说明符(conversion specification)来处理字符串的输入和输出。请注意,在scanf () 中,weight使用了&前缀,而name却没有使用。 

•它使用C预处理器定义了代表值62.4的符号常量DENSITY。

•它使用C函数strlen ()来获取字符串的长度。

C的输入/输出方法与BASIC相比可能有点复杂。不过,正是这种复杂性使您可以更好地控制输入和 输出,并使您的程序更有效率。


程序输入名字:Morgan Buttercup

根据sizeof运算符的报告,数组name有40个内存单元。不过只用了其中前6个单元 来存放Morgan,这是strlen ()所报告的。数组name的第7个单元中放置空字符,它的存在告诉strlen()在哪里停止计数。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值