zoukankan      html  css  js  c++  java
  • 第四章,字符串和格式化输入/输出

    目录

    4.2   字符串简介

    4.2.1  char类型字符数组和null字符

    4.2.3  string()函数

    4.3  常量和c预处理器

    4.3.1  const限定符

    4.3.2  明示常量

    4.4  printf()和sacnf()

    4.4.1  printf()转化说明及其打印输出的结果

     4.4.2  使用printf()

     4.4.3  printf()的转换说明修饰符

    4.4.5  使用scanf()

    4.4.6  printf()和sacnf()的*修饰符

    4.7  复习题

    4.8  编程练习

    4.2   字符串简介

    4.2.1  char类型字符数组和null字符

    字符串都被储存在char类型的数组中,数组由连续的存储单元构成。c语言用 来标记字符串的结束。

    例:char[40],只能存储39个字符,末位要加即空字符。

    4.2.3  string()函数

    string()不计算.

    4.3  常量和c预处理器

    #define NUM 1.5:编译程序时,程序中所有的NUM被替换成1.5,这被称为编译时替换,这样定义的常量也被称为明示常量。

    注意:末尾不加分号,,一般用大写表示符号常量。

    4.3.1  const限定符

    const int NUM=12;//NUM在程序中不能修改,值为12。

    4.3.2  明示常量

    limts.h表示的明示常量

     float.h中的明示常量

    将FEL分别替换为DBL和LDBL,即可分别显示double和long double类型对应的明示常量。

    4.4  printf()和sacnf()

    4.4.1  printf()转化说明及其打印输出的结果

     4.4.2  使用printf()

     4.4.3  printf()的转换说明修饰符

     

    转换类型一定要匹配,不然结构不正确。

    printf()返回值:返回打印字符的个数,输出错误,则返回一个负值。

    打印较长字符串:用反斜杠()加enter组合来断行,不要缩进。或引入字符穿连接。例"love" "love"和"lovelove"等价,要在双引号中”“即字符串中加空格,才会隔开。

    4.4.5  使用scanf()

    读取基本变量类型,需要加上&

    如把字符串读取到字符数组,不要使用&

     

     例:sacf(”%d,%d“,&n,&m)表示要输入一个数字,一个逗号,再输入一个数字。

    格式字符串中空白意味跳过下一个输入项前面所有的空白。

    例sacf(”%d    ,%d“,&n,&m)

    除了%c,其他转化说明都会自动跳过输入值前面所有的空白。

    对与格式字符串

    scanf(”%c“,&ch):从输入的一个字符串开始读取,(不懂)

    scanf(”   %c“,&ch)则从第一个非空白字符开始读取。(不懂)

    scanf()返回值:返回成功读取的项数。

    4.4.6  printf()和sacnf()的*修饰符

    printf()中例%*.*f表示,前一个*为字段宽度,后一个为小数位后几位。

    scanf()中%*c表示跳过该输入

    %[* ]s表示可以输入带空格的字符串。

    4.7  复习题

    1.  不能正常运行,因为在空格初中断,姓被读取例。名还保留在缓冲区内,下次程序从上次中断的地方开始读取,即用%f读取名,会发生错误。

    2.  a:字符宽度和精度。b:关于转义字符,例  '41'其中41为八进制的41,'x41‘表示16进制的41。c:加上。d:

    7.  打印字宽为8的字符串前8位字符。%8.8s

    8.  空白包括空格,制表符和换行符

    4.8  编程练习

    1  输入姓名,转换为名,姓

    #include <stdio.h>
    #define backspace ""//为了退格
    int main(void)
    {
        char surname[40];
        char name[40];
        printf("%Please enter your name____________________%s",backspace);
        scanf("%s %s",surname,name);
        printf("%s,%s",name,surname);
        return 0;
    }

    2.

     1 #include <stdio.h>
     2 #include <string.h>
     3 #define backspace ""
     4 int main(void)
     5 {
     6 
     7     char name[40];
     8     printf("%Please enter your name____________________%s",backspace);
     9     scanf("%[^
    ]s",name);
    10     int len=strlen(name)+3;
    11     printf(""%s"
    ",name);
    12     printf(""%20s"
    ",name);
    13     printf(""%-20s"
    ",name);
    14     printf(""%*s"
    ",len,name);
    15     return 0;
    16 }

    3.

     1 #include <stdio.h>
     2 #include <string.h>
     3 #define backspace ""
     4 int main(void)
     5 {
     6     float num=0.0;
     7     printf("%Please enter a float____________________%s",backspace);
     8     scanf("%f",&num);
     9     printf("输出%.1f或%.1e
    ",num,num);
    10     printf("输出%.3f或%.3e
    ",num,num);
    11     return 0;
    12 }

    6.

    #include <stdio.h>
    #include <string.h>
    #define backspace ""
    int main(void)
    {
        char surname[20];
        char name[20];
        printf("%Please enter your surname____________________%s",backspace);
        scanf("%s",surname);
        printf("%Please enter your name____________________%s",backspace);
        scanf("%s",name);
        printf("%s  %s
    ",surname,name);
        printf("%*d  %*d
    ",strlen(surname),strlen(surname),strlen(name),strlen(name));
        printf("%s  %s
    ",surname,name);
        printf("%-*d  %-*d
    ",strlen(surname),strlen(surname),strlen(name),strlen(name));
        return 0;
    }
  • 相关阅读:
    url分发(二级分发)
    图片的渲染
    自定义admin(self_admin)
    类的方法
    orm分组,聚合查询,执行原生sql语句
    jQuery 插件 jQuery UI的使用
    Spring security 在项目中的使用第二篇之代码实现阶段
    Hibernate 学习笔记第一篇
    Hibernate 学习笔记第三篇
    MySQL 常用命令
  • 原文地址:https://www.cnblogs.com/suwencjp/p/12292057.html
Copyright © 2011-2022 走看看