C语言进阶指南(5)(数据类型——char类型详解)

欢迎来到博主的专栏——C语言进阶指南
博主的id是——reverie_ly

字符类型

char类型的整型值被称为字符类型,char类型只占用一字节的大小,他的数值在-128~127(signed char型),或者0-256(unsigned char型)。
编译器根据字符表来将这些二进制数据转换成字符数据来输出如在asiil码表中(65对应‘A’),(97对应‘a’)。讲这些字符存入内存中时,会将这些字符数据根据字符表转换成对应的二进制数据。
不同的编译器上可能会使用不同的字符表

ascii码

目前国际上最常用的字符表就是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——垂直制表符
\——表示一个斜杠符号
?——一个问号符
'——单引号
“”——双引号。

getchar()函数

char ch;
	ch=getchar();

类似于scanf函数,使用键盘输入一个字符。注意getchar()函数返回值还可以直接使用。

putchar(getchar());
printf("%c",getchar());

我们也可以用这种方法,来持续的输入

int main()
{
	char ch;
	while ((ch = getchar()) != '\n')
		printf("%c", ch);
}

putchar()函数

char ch = 'a';
	putchar(ch);//打印a
	return 0;

字符的输出函数,我们前面已经了解printf()输出函数,putchar函数也是类似,但是只能用于打印字符,对比printf函数的优点在于简洁。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值