前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言进阶指南(5)(数据类型——char类型详解)

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

原创
作者头像
代码小豪
发布2024-06-06 14:50:41
1660
发布2024-06-06 14:50:41
举报
文章被收录于专栏:C语言程序指南C语言程序指南

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

博主的id是——reverie_ly*

@toc

字符类型

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码值为例:

我们可以用字符类型进行整型数的算术加减

代码语言:c
复制
	int i;
	i = 'a' - 'A';//i的值为32

我们可以发现字符型常量竟然还能加减法,再比如我们打印a~z时。

代码语言:c
复制
char ch = 'a';
	for (ch = 'a'; ch <= 'z'; ch++)
		printf("%c", ch);
	return 0;

注意的是这种写法是很隐喻的,程序可读性不高,而且不同的编译器使用不同的字符表时,相应的字符二进制值不一定对应,也降低了程序的可移植性。所以我们要尽量避免用字符表示整型数字的编程方法(尽管他很取巧)。

%c是字符类型数据的转换说明。

代码语言:c
复制
char ch = 'a';
	int i = 65;
	printf("%c", ch);//结果是'a'
	printf("%c", 65);//结果是'A'
	printf("%c", i);//结果是'A'
	return 0;

如果用输入函数来读取字符

代码语言:c
复制
char ch;
scanf("%c",&ch);

我们可以发现尽管是int类型的数据都能够用%c转换说明。

转义字符:(注意转义字符也是一个字符)转义字符是难以用键盘打出的字符。前面介绍了部分转义字符,这里给大脚梳理一下

\n——换行符

\a——蜂鸣符

\b——退格符

\f——换页符

\r——回车符

\t——水平制表符

\v——垂直制表符

\——表示一个斜杠符号

\?——一个问号符

\'——单引号

\""——双引号。

getchar()函数

代码语言:c
复制
char ch;
	ch=getchar();

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

代码语言:c
复制
putchar(getchar());
printf("%c",getchar());

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

代码语言:c
复制
int main()
{
	char ch;
	while ((ch = getchar()) != '\n')
		printf("%c", ch);
}

putchar()函数

代码语言:c
复制
char ch = 'a';
	putchar(ch);//打印a
	return 0;

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符类型
  • ascii码
  • 字符常量
  • 字符类型的输入/输出
  • getchar()函数
  • putchar()函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档