将“\”字符添加到字符串中

时间:2013-07-27 16:15:01

标签: c++ string

我想在一个字符串变量中存储这个bash命令:

find /Users/memmaker6501/Desktop/ -name "*\[*\]*" -type d >> busqueda.txt

但我在序列\]

中获得了错误

有一种方法可以将\]存储在字符串中吗?

3 个答案:

答案 0 :(得分:4)

在特殊字符前加\。像这样"find /Users/memmaker6501/Desktop/ -name \"*\\[*\\]*\" -type d >> busqueda.txt"

答案 1 :(得分:4)

反斜杠和双引号应该使用反斜杠进行转义,如下所示:

"find /Users/memmaker6501/Desktop/ -name \"*\\[*\\]*\" -type d >> busqueda.txt"

Escape sequences in C++ strings

Escape
sequence    Description                     Representation

\'          single quote                    byte 0x27
\"          double quote                    byte 0x22
\?          question mark                   byte 0x3f
\\          backslash                       byte 0x5c
\0          null character                  byte 0x00
\a          audible bell                    byte 0x07
\b          backspace                       byte 0x08
\f          form feed - new page            byte 0x0c
\n          line feed - new line            byte 0x0a
\r          carriage return                 byte 0x0d
\t          horizontal tab                  byte 0x09
\v          vertical tab                    byte 0x0b
\nnn        arbitrary octal value           byte nnn
\xnn        arbitrary hexadecimal value     byte nn
\unnnn      arbitrary Unicode value.        code point U+nnnn
\Unnnnnnnn  arbitrary Unicode value.        code point U+nnnnnnnn

答案 2 :(得分:3)

C ++ 11具有原始字符串文字,以简化创建复杂的字符串表达式。

R"***(find /Users/memmaker6501/Desktop/ -name "*\[*\]*" -type d >> busqueda.txt)***"