C++中的转义字符(字符串中反斜杠\的特殊性)

转义字符的作用

今天在处理字符串的时候,遇见了平时在字符串中并不常见的字符---反斜杠\ 。

与反斜杠搭配的一些特殊字符称为转义字符,转义字符可以表示特殊的意义,或者表示不容易表示的字符。

比如说我们想定义一个带有双引号的字符串 s="abc";

  • s="abc"  这样s输出是没有双引号的。
  • s=" "abc" " 这样连编译都不通过

出现这个问题的原因是双引号原本就是表示字符串的边界的,所以处理起来格外棘手。

有了转义字符,直接在双引号前加上\, \" 就是一个表示双引号的转义字符,问题一下子就解决了。

  • s=" \" abc\" ";

固定的转义字符搭配

反斜杠和字母数字的搭配是固定的,他们合起来搭配成转义字符。

  • 比如 \a 的作用就是响铃。\a 也只能看做是一个字符。

未定义的转义字符是无意义的,在字符串中,会忽略字符反斜杠。

  • 比如 \m 是没有定义的,我们自己编的,那么字符串会默认忽略掉反斜杠。

编译器还可能对于这种未定义的转义字符发出警告。

以下是所有转义字符:

转义字符

意义

ASCII码值(十进制)

\a

响铃(BEL)

007

\b

退格(BS) ,将当前位置移到前一列

008

\f

换页(FF),将当前位置移到下页开头

012

\n

换行(LF) ,将当前位置移到下一行开头

010

\r

回车(CR) ,将当前位置移到本行开头

013

\t

水平制表(HT) (跳到下一个TAB位置)

009

\v

垂直制表(VT)

011

\\

代表一个反斜线字符''\'

092

\'

代表一个单引号(撇号)字符

039

\"

代表一个双引号字符

034

\?代表一个问号063

\0

空字符(NULL)

000

\ddd

1到3位八进制数所代表的任意字符

三位八进制

\xhh

1到2位十六进制所代表的任意字符

二位十六进制

字符串中反斜杠\的特殊性

char a[10]="\0\0"; 

\0是转义字符,表示空格,又因为在字符串中,空格是字符串结束的标志,所以字符串a的长度是0。

char a[10]="\\0\0"; 

第一个反斜杠后面还是反斜杠,\\ 是转义字符,表示一个反斜杠。 然后是字符0,再就是结束符 \0。 所以a表示的是字符串 \0 

总结: 有反斜杠的字符串计算其长度的话,要从左到右,依次辨识出其中的转义字符。

  • 14
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python 删除字符串的一根反斜杠可以使用字符串的 `replace` 方法: ``` s = "hello\\world" s = s.replace("\\", "") print(s) # 输出 "helloworld" ``` 也可以使用字符串的 `strip` 方法: ``` s = "hello\\world" s = s.strip("\\") print(s) # 输出 "hello\\world" ``` 但这两种方法都会删除字符串所有的反斜杠,如果只想删除一根反斜杠,可以使用切片: ``` s = "hello\\world" s = s[:6] + s[7:] print(s) # 输出 "helloworld" ``` 或者使用字符串的 `translate` 方法,需要使用 Python 的 `str.maketrans` 函数和 `string` 模块创建转换表: ``` import string s = "hello\\world" trans = str.maketrans("\\", "", string.printable) s = s.translate(trans) print(s) # 输出 "helloworld" ``` ### 回答2: 在Python,要删除字符串反斜杠,可以使用字符串的replace()方法来完成。replace()方法接受两个参数,第一个参数是要替换的字符或字符串,第二个参数是替换后的字符或字符串。在这里,我们可以将反斜杠作为第一个参数,将空字符串作为第二个参数,即可将字符串反斜杠删除。下面是一个示例代码: ```python # 原始字符串 s = "Hello\World!" # 使用replace()方法删除反斜杠 s = s.replace("\\", "") # 输出结果 print(s) ``` 运行上述代码,输出的结果为: ``` HelloWorld! ``` 这样就成功地将字符串反斜杠删除了。需要注意的是,由于反斜杠字符串具有特殊的含义(用于转义字符),所以在传递给replace()方法时,需要使用双反斜杠表示一个反斜杠。 ### 回答3: 在Python,要删除字符串的一个反斜杠,可以使用字符串的replace()方法来实现。 replace()方法接受两个参数,第一个参数是要被替换的子字符串,第二个参数是要替换成的字符串。 以下是一个示例代码: ```python str = "Python删除反斜杠\\" new_str = str.replace("\\", "") print(new_str) ``` 在上面的代码,我们定义了一个字符串变量str,该字符串包含一个反斜杠。然后,我们使用replace()方法将其反斜杠替换为空字符串,以删除它。 最后,我们打印出新的字符串new_str,即去掉反斜杠后的字符串。 当我们运行这段代码时,输出将会是: ```python Python删除反斜杠 ``` 这样,我们成功地从字符串删除了一个反斜杠
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值