-
字符串简介
字符串:一个或多个字符的序列;双引号不是字符串的一部分,只是通知编辑器其中包含了一个字符串。
①char数组类型和空字符
字符串的字符存放在相邻的存储单元中,每个字符占用一个单元;
数组中的最后一个位置显示字符\0,就是空字符,用来表示字符串的结束;
空字符不是数字0,是非打印字符,其ASCII码值为0;
数组:同一类数据元素的有序序列;
②使用字符串
%s:打印一个字符串;
Scanf()在读取输入后,遇到第一个空白字符空格,制表符或换行符处停止读取(一般使用%s的scanf()只会读一个单词而不是整个句子作为字符串输入)
字符串与数组区别:“x”与‘x’,‘x’属于基本类型char,“x”属于派生类char数组;另外“x”由两个字符组成‘x’和‘、0’。
③strlen():以字符为单位给出字符串的长度;使用字符串相关函数时,要使用头文件string.h;sizeof运算符提供给的数目比字符串大一,因为包含终止作用的空字符。
-
常量与C预处理器
定义常量:#define符号名 (值);(尽量大写常量,使之更易阅读)
符号常量所用的名字必须满足变量命名原则,可使用大写和小写字母、数字和下划线,第一个字符不能是数字。
#define可用于定义字符或字符串常量。
常见错误:#define TOES = 20;TOES会被=20替代而不是20;
①const修饰符:const关键字把一个变量声明转换成一个常量声明;例:const int MONTHS=12使MONTHS成为一个只读值,但不能改变其值。
②系统定义的明显常量
头文件Limits.h和float.h提供有关整数类型和浮点类型的大小 限制的详细信息。
-
研究和利用printf()和scanf()
①printf()中的转换说明符
%a或%A:浮点数、十六进制数和p-计数法;
%c:一个字符;
%d(%i):有符号十进制数;
%e或%E:浮点数、e-计数法;
%f:浮点数、十进制计数法;
%o:无符号八进制;
%p:指针;
%s:字符串;
%u:无符号十进制数;
%x或%X:使用十六进制数字0f的无符号十六进制整数;
%%:打印一个百分号;
②printf()修饰符
标志:(—、+、空格、#、0)可使用多个或无,例:%-10d;
digit(s):字段宽度的最小值,例:%4d;
.digit(s):精度,例:%5.2f,打印一个浮点数,字符段宽度为5个字符,小数点后有两个数字;
还有h,hh,j,l,ll,L,t,z;
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():在字符宽度部分使用*代替数字,但必须使用一个参数告诉函数字段宽度应该是什么;
字符串和格式化输入/输出
最新推荐文章于 2021-09-21 20:41:14 发布