C语言-字符类型

一、什么是字符类型

  C语言使用char类型来表示一个字符,并且C语言是没有字符串类型的,我们通常使用字符数组来表示字符串。

每个字符变量,在16位、32位或64位编译器中都是占用 1 个字节(=8位)

二、普通表达

字符型变量赋值时,需要用一对英文半角格式的单引号('')把字符括起来。

  例如:

char c = 'A'; // 定义一个char类型的变量c,并将'A'赋值给c

三、ASCll码值

1.什么是ASCll码

ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符二进制位之间的关系,做了统一规定。这被称为ASCII码。ASCII码一共规定了127个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0,也就是说,ASCII虽然用8位二进制编码表示字符,但是其有效位为7位

  常见的ASCII值与对应的字符如下:(ASCII数值范围为0-127)

在这里插入图片描述

2.实例

Ⅰ.两个字符类型可以做数学运算

char类型中的每个字符对应着一个ASCII码,因为ASCII码是一个数值,所以char类型的变量可以参与+-*/的运算。

  例如:

char a = 'a'; // ASCll码值为:97
char b = 'b'; // ASCll码值为:98
printf("%d", a + b); // a + b 结果为 195

Ⅱ.字符’65’和整数65

  前面我们已经了解了ASCll表,所以很显然,字符’65’就是字符’65’,而整数65还有另外一个身份,那就是字符’A’

char a = '65';
char b = 65;
printf("%c", a); // 打印为 65
printf("%c", b); // 打印为 A

  再比如:

char c='?'; // 定义c为字符型变量并使初值为字符'?'。'?'的ASCII代码是63,系统把整数63赋给变量c
printf("%d %c\n",c,c); // 用"%d"格式输出十进制整数63,用"%c"格式输出字符'?'

四、signed 和 unsigned 修饰

  根据C90标准,C语言允许在关键字char前面使用signed或unsigned

signed char c; // 范围为 -128 到 127
unsigned char c; // 范围为 0 到 255

C 语言规定 char 类型默认是否带有正负号,由当前系统决定,这一点与 int 不同, int 等同于 signed int 。这就是说, char 不等同于signed char ,它有可能是 signed char(范围-128 到 127) ,也有可能是 unsigned char (范围0 到255)。不管是哪种,范围都正好都能覆盖 0 到 127 的 ASCII 字符范围

五、转义字符

  使用反斜杠\来转义

字符形式含义
\n换行符(光标移动到下行行首)
\t水平制表符,光标移到下一个Tab位置
\'单引号字符 ’
\"双引号字符 "
\\反斜杠字符 ’\’
\r回车符,光标移到本行开头
\0null 字符,代表没有内容。注意,这个值不等于数字0。
\b退格键,光标回退一个字符,但不删除字符
  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言的词法分析程序主要用于对源程序进行分析,将源程序中的各种单词进行分类提取。根据引用和引用中提供的信息,词法分析程序可以将源程序中的关键字、自定义标识符、整数、界符和运算符进行分析和提取。 关键字包括main、if、else、for、while和int等。自定义标识符是除了关键字之外的标识符。整数是无符号的整数。界符包括大括号{}、小括号()、逗号,和分号;。运算符包括等号=、减号-、乘号*、除号/、小于号<、左移运算符<<、大于等于>=、等于==和不等于!=等。 在编写词法分析程序时,可以使用字符串处理函数,例如gets、strcpy和strcmp等,来从键盘获取源程序输入,并对字符串进行复制和比较操作,以便进行单词的分类和提取。 通过词法分析程序,可以将源程序中的各种单词按照其类型进行分类,并提取出来,从而为后续的语法分析和语义分析提供基础。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [小C语言--词法分析程序](https://blog.csdn.net/wq3699823668/article/details/100599572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [A - 小C语言--词法分析程序](https://blog.csdn.net/Mercury_Lc/article/details/108685127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [词法分析源程序(c语言编写)](https://download.csdn.net/download/wviyong/1797051)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值