✅ 操作成功!

c语言中char

发布时间:2023-06-13 作者:admin 来源:文学

c语言中char

c语言中char

工匠精神人物素材-联盟房产

2023年3月18日发(作者:二次供水)

C语⾔字符型(char)及字符IO函数简介

⽬录

⼀、实验环境

Windows10系统

VisualStudioCommunity2019

⼆、简介C语⾔字符

1、字符常量

“字符常量”通过在单引号('')内包含单个字符来构成。例如:‘a’,‘1’,‘!’。字符可以是中的任何元素。

字符常量具有整数类型(integertype)。每个字符常量都被解释为其对应的ASCII码,如'a'在⼗进制和⼗六进制下分别为97和61。

常⽤的⼏个ASCII码:

字符值ASCII码(⼗进制下)

‘0’48

‘9’57

‘A’65

‘Z’90

‘a’97

‘z’122

2、字符变量

字符变量的类型说明符是char。每个字符变量占⽤⼀个字节的内存空间,存储字符常量的值(即ASCII码)。例如:

charch='a';//ch是字符变量,'a'是字符常量

char型和int型可以相互转换。当int型的变量转换成char型时,只取int型变量的低⼋位;当char型变量转换成int型时,以符号位的值补⾜

成int型。

三、字符输⼊输出函数

1、使⽤scanf()和printf()

强⼤的格式化输⼊输出函数,可以⽤于字符的输⼊和输出。需要加⼊头⽂件#include。

#define_CRT_SECURE_NO_WARNINGS//VS⾥不加这个会对scanf报错,说scanf涉及安全问题,我没有细看了

#include

intmain(void)

{

charch;

scanf("%c",&ch);//⽤%c

printf("ch='%c'",ch);//⽤%c

return0;

}

输出:

a//输⼊的字符

ch='a'

2、使⽤getchar()和putchar()

作为知识补充,⾸先我们来看这样⼀个问题:

C陷阱与缺陷139页:

函数调⽤需要花费较长的程序执⾏时间,因此getchar经常被实现为宏。这个宏在stdio.h中定义,因此如果⼀个程序没有包含stdio头

⽂件,编译器对getchar的定义⼀⽆所知。在这种情况下,编译器会假定getchar是⼀个返回类型为整型的函数。

实际上,很多C语⾔实现在库⽂件中都包括有getchar函数,忘记在程序中包含stdio头⽂件的效果就是在所有出现getchar宏的地⽅都

⽤getchar函数调⽤来替换getchar宏。

总之我们需要知到:

1、getchar()和putchar()⽐scanf()和printf()函数实现简单,效率更⾼;

2、为了额外的效率提升,通常getchar()和putchar()都是作为宏来实现的。

当我们使⽤getchar()和putchar()的时候,通常需要包含头⽂件#include。在stdio.h中有如下声明:

_Check_return__ACRTIMPint__cdeclgetchar(void);

_Check_return_opt__ACRTIMPint__cdeclputchar(_In_int_Character);

虽然看不懂,但还是能理解意思的,意思⼤概就是:

intgetchar(void);

intputchar(int_Character);

1、getchar()

功能:从输⼊缓冲区读取⼀个字符,输⼊有回显。不需要提供参数,返回值是读取字符的ASCII码。

2、putchar()

功能:输出指定字符。需要提供⼀个参数,返回值是接收参数的ASCII码。

注意到这⾥putchar()接收参数的类型是int,⽽不是char,为什么呢?getchar()和putchar()返回值类型为什么是int⽽不是char呢?⽹上

有说是为了兼容⽂件结束符EOF,有说是为了兼容ASCII码以外的字符,我就知到这么多了。

👁️ 阅读量:0