#include <stdio.h>
#include <string.h>
#define DENSITY 62.4
int main()
{
float weight, volume;
int size, letters;
char name[40];
printf("Hi!What's your first name?n");
scanf_s("%s", name);
printf("%s,what's your weight in pounds?n", name);
scanf_s("%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;
}
用数组name储存字符串,name数组有40个字节,每个字节储存一个字符值。
在scanf()函数中,输入字符串name没有&前缀。
C预处理器把字符常量DENSITY定义为62.4。
strlen()获取字符串长度。
1. 字符串
1.1. char类型数组
双引号标记字符串,单引号标记单个字符。
字符串储存在char类型的数组中,最后用空字符0标记字符串的结束,为非打印字符。 所以数组容量至少要比字符数多1。空格和标点符号也算一个字符。
数组是同类型数据元素的有序序列。
char name[40];
scanf()函数只读取第一个单词,遇到空格就停止。
1.2. strlen()函数
sizeof运算符,以字节为单位给出对象大小。
size = sizeof name;
strlen()给出字符串中的字符长度。但建议平时sizeof加