C语言初阶之转义字符

文章详细介绍了C语言中的转义字符,包括简单转义字符如空字符、警报符、退格符等,以及八进制和十六进制转义字符的使用方法。这些转义字符用于表示ASCII码中的特殊字符,对于字符串处理和输出控制至关重要。

在这里插入图片描述

一、什么是转义字符

转义字符(Escape character),所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C语言中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符;在平常的代码编写中,printf函数经常会用到。
转义字符虽然由两个及两个以上的字符构成,但它表示的却是单个字符
简单转义字符(Simple escape sequence)

转义字符 含义 说明
\0 空字符(NULL 在c语言中代表“字符串结束符”
\a 警报符(alert) 发出听觉或视觉上的警报
\b 退格符(backspace) 将当前位置移到前一列
\f 换页符(form feed) 换页,将当前位置移到下一页开头
\n 换行符(new line) 换行,将当前位置移到下一行开头
\r 回车符(carriage return) 将当前位置移到本行开头
\t 水平制表符(horizontal tab) 将当前位置移动到下一个水平制表位置
\v 垂直制表符(vertical tab) 将当前位置移动到下一个垂直制表位置
\\ 字符\
\? 字符 ?
\’ 字符 ’
\" 字符 "

八进制转义字符(Simple escape sequence)

转义字符 含义 说明
\ddd ddd是3位八进制数 一般来说是在ASCII中的八进制数值为ddd的字符

十六进制转义字符(Simple escape sequence)

转义字符 含义 说明
\xhh hh是2位十六进制数 一般来说是在ASCII中的十六进制数值为hh的字符

二、简单转义字符

1、空字符

空字符\0
它的存在是为了告诉编译器’\0’是空字符,而不是字符0.
字符’0’对应的ASCII码为00110000,而’\0’对应的ASCII码为00000000;在C语言中通常用一个字符数组来存放字符串,’\0’ 是字符串的结束标志,任何字符串之后都会自动加上’\0’。如果字符串末尾少了‘\0’转义字符,则在输出时可能会出现乱码问题。
比如:

int main() {
   
   
    char str1[] = {
   
   "abc"};
    char str2[] = {
   
   "abc\0"};
    return 0;
}

上述代码中str1str2在打印输出时均为abc
包括在使用库函数strlen计算时,str1str2均为3
原因是printf函数与strlen函数均认定’\0’ 是字符串的结束标志;
但在使用单引号进行赋值的时候,这两个函数可能会出现一些问题。
比如:

int main() {
   
   
    char str1[] = {
   
   'a','b','c'};
    char str2[] = {
   
   'a','b','c','\0'};
    return 0;
}

在上述代码中如果我们使用printf函数与strlen函数进行打印输出和计算str1时,
该数据类型会丢失’\0’ ,此时打印的时候可能会出现乱码情况和计算出随机值的情况,
这时如果非要用单引号进行赋值的话,建议使用str2的写法。

在使用库函数sizeof进行字符串计算时,输出个数会比实际字符个数多1,
比如:

int main() {
   
   
    char str[] = {
 
评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱学习的鱼佬

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

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

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

打赏作者

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

抵扣说明:

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

余额充值