C Primer Plus 4

C Primer Plus 4

一、字符串和格式化输入输出

1.前导程序

 \#include<stdio.h>

 \#include<string.h>  *//提供strlen()函数原型*

 \#define DENSITY 62.4  *//人体密度*

 \#include<windows.h>

 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");

   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);

   getchar();

   system("pause");

   return 0 ;



 }

2、编程练习

1、编写一个程序,读取一个浮点数,首先以小数点计数法打印,然后以指数计数法打印。

 #include<stdio.h>
 #include<windows.h>
 int main()
 {
     float input;
     printf("Enter a float number:\n");
     scanf("%f",&input);
     printf("The input is %.1f or %.1e \n",input,input);
     system("pause");
     return 0 ;
 }

2、提示用户输入用户名,打印名和姓的字母数,并对齐。

 #include<stdio.h>
 #include<windows.h>
 int main()
 {
     char name[40],surname[40];
     int wname,wsurname;
     printf("Please input your first name:\n");
     scanf("%s",&name);
     printf("Please input your last name:\n");
     scanf("%s",&surname);
     wname = printf("%s",name);
     printf("");
     wsurname = printf("%s",surname);
     printf("\n%*d %*d",wname,wname,wsurname,wsurname);
     /*
     字母数的对齐用到的字符宽度需要使用‘*’修饰符来通过参数指定。
     如果使用strlen()函数,可以不定义wname,wsurname变量
     */
     system("pause");
     return 0 ;
 }

3、编写一个程序,使用户输入旅行里程和消耗的汽油量,计算并显示消耗每加仑汽油行驶的英里数,保留一位小数。

 #include<stdio.h>
 #define GALLON_TO_LITRE 3.785
 #define MILE_TO_KM 1.609
 /*使用define语句定义单位之间的换算比例*/
 #include<windows.h>
 int main()
 {
     float range,oil;
     printf("Please input the range you traveled in mile:\n");
     scanf("%f",&range);
     printf("Please input the oil you spend in gallon:\n");
     scanf("%f",&oil);
     printf("In the USA,your oil wear is %.1f M/G.\n",range/oil);
     printf("In the Europe,your oil wear is %.1f L/100KM",(oil*GALLON_TO_LITRE)/(range*MILE_TO_KM));
     system("pause");
     return 0 ;
 }

3、总结:字符串与格式化输入与输出

字符串:一个或多个字符序列

双引号表示字符串

字符串以“\0”结尾

字符数组用“[]”表示

strlen()函数用于获取字符串长度

sizeof()运算符

格式化输出:printf()函数

数据打印的转换说明符

printf()的待打印列表

printf()的转换说明修饰

printf()的标记

打印过程中的数据转换

printf()的返回值

格式化输入:scanf()函数

scanf()的参数

常量和变量

#define预处理命令

符号常量

明示常量

limits.h

float.h

上一篇:数组扁平化


下一篇:《C++ Primer》笔记 第三章 字符串、向量和数组