字符与字符串
signed和unsigned
signed表示有正负性(范围对半取)
unsigned表示无正负性(不能出现负数)(无正负性的占位符由%d改为%u)
BTW.
{printf中的占位符有如下规则
%d把对应的整数按有符号十进制输出,%u把对应的整数按无符号十进制输出,
比如printf(“%d,%u\n”,-123,-123);,输出则是-123,4294967173
因为-123的补码是11111111111111111111111110000101,在%u控制下把它当正数输出了。
占位符介绍:
%d 有符号10进制整数
%i 有符号10进制整数
%o 无符号8进制整数
%u 无符号10进制整数
%x 无符号的16进制数字,并以小写abcdef表示
%X 无符号的16进制数字,并以大写ABCDEF表示
%F/f 浮点数
%E/e 用科学表示格式的浮点数
%g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
%c 单个字符
%s 字符串
}
通常情况下,int未书写unsigned默认都使用signed
而char类型并没有规定(根据用户编译器自行规定),所以书写时注意取值范围
signed char (-128127)255)
unsigned char (0
char类型为1byte
用法跟其他基本数据类型一样
字符串的使用
c语言字符串常量用双引号括起来。
单引号括起的是 字符。
结构: char 变量名 [数量];
可以使用如下结构获得字符变量的空间: 变量名[索引号]=字符;
e.g.
char name[7];//从零开始计数
name[0]=’J’;
name[1]=’o’;
name[2]=’C’;
name[4]=’a’;
name[5]=’t’;//注意括号是单引号
name[6]=’\0’//注意\0表示字符串的结束
如果没有\0,系统则会一读取下去,出现乱码
或
char name [7]={‘J’,’o’,’C’,’a’,’t’,’\0’};//注意\0
printf(“%s\n”,name);//注意%s
编译器在char name [number]结构中有时并不需要你去计算number,
也就是字符串的长度(一般的字符串的长度=你要输入的字符长度+\0的一格=想输入数字+1)
可以简写为char name[]//number编译器会自动帮你计算
字符串也可以在char name [number]={}的大括号中直接写入字符串常量
e.g.char name []={“JoCat”};//[]可以留空,用“双引号”括起来,结尾不需加\0来终止
甚至你可以这样:char name []=”JoCat”大括号也可以省略哦~
在C语言中,字符实质上是ASCll码
ASCII码值大小比较:数字的ASCII码 < 大写字母的ASCII码 < 小写字母的ASCII码。