字符串的输入与输出:补充

4.4 示例程序

//talkback.c -- 演示与用户交互
#include<stdio.h>
#include<string.h>       //提供strlen()的函数原型
#define DENSITY 62.4
int main(){
    float weight,volume;
    int size, letters;
    char name[40];       //是一个可以容纳40个字符的数组
  
    printf("Hi! What is your first name?\n");
    scanf("%s",name);
    printf("%s,what is yor 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;
}

4.5 字符串简介

字符串被储存在char类型的数组中。数组由连续的组成单元组成,每个单元储存一个字符。
\0标志字符串的结束,占一个单元。

数组是一行连续的多个存储单元。是同类型的数据元素的有序序列。

使用%s告诉 printf()要打印字符串。

scanf()在遇到第一个空白时就不再读取输入。

4.5.1 strlen()函数

strlen()函数给出字符串中的字符长度。不计算空字符 \0

与之不同的是,sizeof运算符把空字符也计算在内。

strlen()sizeof的转换说明为 %zd