*欢迎来到博主的专栏——C语言进阶指南
博主的id是——reverie_ly*
@toc
char类型的整型值被称为字符类型,char类型只占用一字节的大小,他的数值在-128~127(signed char型),或者0-256(unsigned char型)。
编译器根据字符表来将这些二进制数据转换成字符数据来输出如在asiil码表中(65对应‘A’),(97对应‘a’)。讲这些字符存入内存中时,会将这些字符数据根据字符表转换成对应的二进制数据。
不同的编译器上可能会使用不同的字符表
目前国际上最常用的字符表就是ASCII码表。ASCII码表的具体编码如下:
常用的字符有0——‘\0’,32——‘ ’(空格字符),65——‘A’,97——‘a’。
A~Z的ASCII值在(65—90)。a—z的ASCII码值在(97—122)。数字0—9也是连续的二进制值。
既然我们知道了每个字符都有其对应的整型值
以ASCII码值为例:
我们可以用字符类型进行整型数的算术加减
int i;
i = 'a' - 'A';//i的值为32
我们可以发现字符型常量竟然还能加减法,再比如我们打印a~z时。
char ch = 'a';
for (ch = 'a'; ch <= 'z'; ch++)
printf("%c", ch);
return 0;
注意的是这种写法是很隐喻的,程序可读性不高,而且不同的编译器使用不同的字符表时,相应的字符二进制值不一定对应,也降低了程序的可移植性。所以我们要尽量避免用字符表示整型数字的编程方法(尽管他很取巧)。
%c是字符类型数据的转换说明。
char ch = 'a';
int i = 65;
printf("%c", ch);//结果是'a'
printf("%c", 65);//结果是'A'
printf("%c", i);//结果是'A'
return 0;
如果用输入函数来读取字符
char ch;
scanf("%c",&ch);
我们可以发现尽管是int类型的数据都能够用%c转换说明。
转义字符:(注意转义字符也是一个字符)转义字符是难以用键盘打出的字符。前面介绍了部分转义字符,这里给大脚梳理一下
\n——换行符
\a——蜂鸣符
\b——退格符
\f——换页符
\r——回车符
\t——水平制表符
\v——垂直制表符
\——表示一个斜杠符号
\?——一个问号符
\'——单引号
\""——双引号。
char ch;
ch=getchar();
类似于scanf函数,使用键盘输入一个字符。注意getchar()函数返回值还可以直接使用。
putchar(getchar());
printf("%c",getchar());
我们也可以用这种方法,来持续的输入
int main()
{
char ch;
while ((ch = getchar()) != '\n')
printf("%c", ch);
}
char ch = 'a';
putchar(ch);//打印a
return 0;
字符的输出函数,我们前面已经了解printf()输出函数,putchar函数也是类似,但是只能用于打印字符,对比printf函数的优点在于简洁。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。