加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.51jishu.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C语言变义字符

发布时间:2022-07-01 11:48:00 所属栏目:语言 来源:互联网
导读:字符集(Character Set)为每个字符分配了唯一的编号,我们不妨将它称为编码值。在C语言中,一个字符除了可以用它的实体(也就是真正的字符)表示,还可以用编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)。 转义字符
  字符集(Character Set)为每个字符分配了唯一的编号,我们不妨将它称为编码值。在C语言中,一个字符除了可以用它的实体(也就是真正的字符)表示,还可以用编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)。
 
  转义字符以或者x开头,以开头表示后跟八进制形式的编码值,以x开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制。
 
  字符 1、2、3、a、b、c 对应的 ASCII 码的八进制形式分别是 61、62、63、141、142、143,十六进制形式分别是 31、32、33、61、62、63。下面的例子演示了转义字符的用法:
  char a = '61';  //字符1
  char b = '141';  //字符a
  char c = 'x31';  //字符1
  char d = 'x61';  //字符a
  char *str1 = "x31x32x33x61x62x63";  //字符串"123abc"
  char *str2 = "616263141142143";  //字符串"123abc"
  char *str3 = "The string is: 616263x61x62x63"  //混用八进制和十六进制形式
  转义字符既可以用于单个字符,也可以用于字符串,并且一个字符串中可以同时使用八进制形式和十六进制形式。
 
  一个完整的例子:
  #include <stdio.h>
  int main(){
      puts("x68164164x70://c.biancheng.x6e145x74");
      return 0;
  }
  运行结果:
  http://c.biancheng.net
 
  转义字符的初衷是用于 ASCII 编码,所以它的取值范围有限:
  八进制形式的转义字符最多后跟三个数字,也即ddd,最大取值是177;
  十六进制形式的转义字符最多后跟两个数字,也即xdd,最大取值是x7f。
 
  超出范围的转义字符的行为是未定义的,有的编译器会将编码值直接输出,有的编译器会报错。
 
  对于 ASCII 编码,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来表示。不过,直接使用 ASCII 码记忆不方便,也不容易理解,所以,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下:
  转义字符 意义 ASCII码值(十进制)
  a 响铃(BEL) 007
  b 退格(BS) ,将当前位置移到前一列 008
  f 换页(FF),将当前位置移到下页开头 012
  n 换行(LF) ,将当前位置移到下一行开头 010
  r 回车(CR) ,将当前位置移到本行开头 013
  t 水平制表(HT) 009
  v 垂直制表(VT) 011
  ' 单引号 039
  " 双引号 034
   反斜杠 092
  n和t是最常用的两个转义字符:
  n用来换行,让文本从下一行的开头输出,前面的章节中已经多次使用;
  t用来占位,一般相当于四个空格,或者 tab 键的功能。
 
  单引号、双引号、反斜杠是特殊的字符,不能直接表示:
  单引号是字符类型的开头和结尾,要使用'表示,也即''';
  双引号是字符串的开头和结尾,要使用"表示,也即"abc"123";
  反斜杠是转义字符的开头,要使用表示,也即'',或者"abc123"。
 
  转义字符示例:
  #include <stdio.h>
  int main(){
      puts("CtC++tJavan"C" first appeared!");
      return 0;
  }
  运行结果:
  C    C++    Java
  "C" first appeared!

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!