字符串和格式化输入/输出

  1. 字符串简介

       字符串:一个或多个字符的序列;双引号不是字符串的一部分,只是通知编辑器其中包含了一个字符串。

       ①char数组类型和空字符

         字符串的字符存放在相邻的存储单元中,每个字符占用一个单元;

         数组中的最后一个位置显示字符\0,就是空字符,用来表示字符串的结束;

         空字符不是数字0,是非打印字符,其ASCII码值为0

         数组:同一类数据元素的有序序列;

       ②使用字符串

         %s:打印一个字符串;

         Scanf()在读取输入后,遇到第一个空白字符空格,制表符或换行符处停止读取(一般使用%sscanf()只会读一个单词而不是整个句子作为字符串输入

         字符串与数组区别:x”与‘x’,‘x’属于基本类型char,“x”属于派生类char数组;另外“x”由两个字符组成‘x’和‘、0’。

    strlen():以字符为单位给出字符串的长度;使用字符串相关函数时,要使用头文件string.hsizeof运算符提供给的数目比字符串大一,因为包含终止作用的空字符。

  2. 常量与C预处理器

       定义常量:#define符号名 (值);(尽量大写常量,使之更易阅读)

       符号常量所用的名字必须满足变量命名原则,可使用大写和小写字母、数字和下划线,第一个字符不能是数字。

    #define可用于定义字符或字符串常量。

    常见错误:#define TOES = 20TOES会被=20替代而不是20

    const修饰符:const关键字把一个变量声明转换成一个常量声明;例:const int MONTHS=12使MONTHS成为一个只读值,但不能改变其值。

    ②系统定义的明显常量

      头文件Limits.hfloat.h提供有关整数类型和浮点类型的大小 限制的详细信息。

  3. 研究和利用printf()和scanf()

      ①printf()中的转换说明符

    %a%A:浮点数、十六进制数和p-计数法;

    %c:一个字符;

    %d%i):有符号十进制数;

    %e%E:浮点数、e-计数法;

    %f:浮点数、十进制计数法;

    %o:无符号八进制;

    %p:指针;

    %s:字符串;

    %u:无符号十进制数;

    %x%X:使用十六进制数字0f的无符号十六进制整数;

    %%:打印一个百分号;

      ②printf()修饰符

    标志:(—、+、空格、#0)可使用多个或无,例:%-10d

    digits):字段宽度的最小值,例:%4d

    .digits):精度,例:%5.2f,打印一个浮点数,字符段宽度为5个字符,小数点后有两个数字;

    还有hhhjlllLtz

    printf()的标志:—:项目是左对齐;+:有符号的值若为正,则带加号,若为负,则带减号;(空格):有符号正数,可带前导空格;#:使用转换说明的可选形式;0:前导零;

    printf()的返回值

      返回值可用于赋给一个变量,也可用于计算,或作为参数。

      printf()函数也有一个返回值,返回所打印字符数目,若输出错误,会返回一个负值。

      打印较长字符串:法一:多个printf()语句,最后一个才有\n

          法二:用反斜杠/和回车键来结束第一行,下一行必须从最左边开始(无空格);

          法三:字符串连接方法,二者之间用空白符分隔。


     ④scanf()简单规则:读取基本变量类型值,前面加&;把一个字符串读进字符数组中,不用&。


     scanf()转换说明符:%c:一个字符;

                           %d%i:有符号十进制数;

                           %o:有符号八进制;

                           %e%f%g%a%E%F%G%A:浮点数;

                           %p:指针;

                           %s:字符串(以第一个非空白字符开始,到下一个空白字符);

                           %u:无符号十进制;

                           %x%X:有符号十六进制;

    scanf()函数允许把普通字符放在格式字符串中,除了空格字符之外的普通字符一定要与输入字符串准确匹配。

    “任何空格”的概念包含没有空格的特殊情况。

       ⑤printf()和scanf()的*修饰符

         都可用*修饰符来修饰说明符的意义;

         printf():在字符宽度部分使用*代替数字,但必须使用一个参数告诉函数字段宽度应该是什么;



       




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值