本篇主要讲两个函数的简单应用和字符宽度及保留小数
sizeof返回字符串或数组等的大小,strlen是string.h中的函数,返回字符串的大小
name是数组名,也是一个指针,指向数组首元素的地址。能存储39个非空字符,一般至少留一个位置用于存储'\0'构成字符串
#include <stdio.h>
#include <string.h>
#define DENSITY 62.4
int main(void)
{
float weight, volume;
int size, letters;
char name[40];
printf("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("We have %d bytes to store it.\n", size);
return 0;
}
上面是一个简单的交互程序。
scanf_s("%s", name);
name作为一个指针,不用使用&,否则将是错误的选择。
size = sizeof(name);
sizeof返回的是数组的大小,可以看出最后一行的结果是40
strlen则返回字符串的实际长度,不包括'\0'
第一个2代表字符宽度,第2个2代表两位小数,中间用小数点分隔
% 2.2f
What's your first name?
LE
LE,what's your weight in pounds?
67
Well,LE,your volume is 1.07 cubic feet.
Also,your first name has 2 letters.
We have 40 bytes to store it.
--------------------------------
Process exited after 7.066 seconds with return value 0
请按任意键继续. . .