zoukankan      html  css  js  c++  java
  • CHAP4 字符串和格式化输入输出

    2019-02-12      16:05:42

    p72-p101

     1 //talkback.c--演示与用户交互
     2 #include <stdio.h>
     3 #include <string.h> //提供strlen()函数的原型
     4 #define DENSITY 62.4//用C预处理器定义字符常量——人体密度
     5 
     6 int main()
     7 {
     8     int size,letters;
     9     float weight,volume;
    10     char name[40];//用数组储存字符串
    11 
    12     printf("Hi! What's your first name?
    ");
    13     scanf("%s",name);     //用%s转换说明来处理字符串的输入和输出
    14     printf("%s,what's your weight in pounds?
    ",name);//name无&前缀,name和&weight都是地址
    15     scanf("%f",&weight);
    16 
    17     //对象大小,计算体积
    18     size=sizeof name;
    19     volume=weight/DENSITY;
    20     letters=strlen(name);
    21     printf("Hi!%s,your volume is %f cubic feet.
    ",name,volume);
    22     printf("Also,your first name has %d letters
    ",letters);
    23     printf("and we have %d bytes to store it.
    ",size);
    24 
    25     return 0;
    26 }

     1、一般而言,C把函数库中相关的函数归为一类,并为每类函数提供一个头文件。

    ex,printf ( )和scanf ( ) 都隶属标准输入和输出函数,使用stdio.h 头文件。string.h头文件包含了strlen ( )函数和其他一些与字符串相关的函数(如拷贝字符串的函数和字符串查找函数)

     2、char 类型数组——C语言没有专门用来储存字符串的变量类型,字符串都被储存在char类型的数组中。即用数组存储字符串。

          C语言用  (空字符 null character) 标记字符串的结束,空字符是非打印字符,ASCII码值为0。故数组的容量至少比待存储字符串的字符数多1.

          声明一个数组和声明一个变量:

     3、用 %s 转换说明来处理字符串的输入和输出    用%d转换说明来处理 int 的输入和输出    用 %f 转换说明来处理 float 的输入和输出

     一般而言,根据%s转换说明,scanf ( ) 只会读取字符串中的第一个单词,而非一整句。

    4、用strlen ( ) 得到的是字符串中的字符数(包括空格和标点符号)

    然而,sizeof运算符给出的数更大,因为他把字符串末尾不可见的空字符也计算在内。

     运行结果:

    1 Hi! What's your first name?
    2 fengxian
    3 fengxian,what's your weight in pounds?
    4 120
    5 Hi!fengxian,your volume is 1.923077 cubic feet.
    6 Also,your first name has 8 letters
    7 and we have 40 bytes to store it.

     又如:

    results:

    5、CHAP 2 中介绍预处理器如何使用# include 包含其他文件的信息, 预处理器也可用来定义常量。

          #define PI 3.14159 

    大写常量提高程序的可读性             编译程序时完成替换                 #define指令还可以定义字符和字符串常量

    一言以蔽之:符号常量后面的内容被用来替换符号常量

    6、const 限定符:可使用可打印不可更改,比#define 更灵活,CHAP12中讨论。

    7、明示常量:符号常量。C头文件limit.h 和float.h 分别提供了与整数类型和浮点类型大小限制相关的详细i信息。

    #define INT_MAX +32767             #define INT_MIN -32768

    8、printf ( ) 函数是输出函数 ,scanf ( ) 函数是输入函数。工作原理几乎相同,都使用格式字符串和参数列表。

         

    请求printf ( ) 函数打印数据的指令与待打印数据的类型 要 相匹配。

          如:打印整数时使用%d,打印字符时使用%c,打印浮点型数据使用%f,打印字符串使用%s——指定了如何把数据转化成可显示的形式

          控制输出格式:转换说明修饰符:P83  +    printf ( ) 中的标记:P84

          转换说明(亦称翻译说明)的意义( 本质理解):把二进制格式储存在计算机中的值转换成一系列字符(字符串)以便于显示。

    9、 大部分C函数都有一个返回值,这是函数计算并返回给主调函数的值。printf  ( )函数也不例外。

          printf 的返回值:返回打印字符的个数。如果有输出错误,返回一个负值。     返回值可以像其他值一样使用:赋给变量、用于计算、作为参数传递。

    10、scanf ( )

    格式字符串:表明字符输入流的目标数据类型。

    参数列表(和printf ( ) 的主要区别):使用指向变量的指针。

    --------------------------------------------------------------------------------

    11、C语言还有其他的输入函数,如getchar ( ) 和fgets ( )      更适合处理一些特殊情况——如读取单个字符或包含空格的字符串。

    12、scanf ( )函数返回成功读取的项数。

    13、使用足够大的固定字段宽度可以让输出整齐美观。(如想把数据打印成列时)

  • 相关阅读:
    文件处理
    集合 字符编码
    3-11作业
    win 10 在vs2017下对mpi的安装以及认识
    java中二维数组的排序
    java中Arrays的用法
    java中随机二维数组中寻找最大值并输出坐标
    用java打印图形
    面向对象object与constructor
    for each in for in 与for of
  • 原文地址:https://www.cnblogs.com/wanwujiexu/p/10366826.html
Copyright © 2011-2022 走看看