c++ 哪些转义字符
时间: 2023-07-04 22:12:22 浏览: 60
C++ 中的转义字符是用来表示一些特殊的字符,例如回车、换行、制表符等。以下是C++中常用的转义字符:
- `\n`:换行符
- `\t`:制表符
- `\r`:回车符
- `\\`:反斜线
- `\'`:单引号
- `\"`:双引号
- `\b`:退格符
- `\f`:换页符
这些转义字符通常用在字符串字面量中,例如:
```cpp
cout << "Hello, \nWorld!"; // 输出 "Hello," 后换行,然后输出 "World!"
cout << "This is a \t tab."; // 输出 "This is a tab."
cout << "This is a \"quote\"."; // 输出 "This is a "quote"."
```
需要注意的是,在C++中,单引号和双引号的含义是不同的。单引号表示字符字面量,而双引号表示字符串字面量。因此,如果需要在字符串中表示单引号,就需要使用转义字符`\'`。同样地,如果需要在字符字面量中表示单引号,就需要使用双引号将它括起来,例如`'"'`。
相关问题
C++ 去转义字符 封装方法
以下是一个简单的 C++ 函数,可以将字符串中的转义字符还原为原始字符:
```cpp
#include <iostream>
#include <string>
std::string unescape(const std::string& str) {
std::string result;
for (std::string::size_type i = 0; i < str.size(); ++i) {
if (str[i] == '\\' && i + 1 < str.size()) {
switch (str[i + 1]) {
case 'a': result += '\a'; break;
case 'b': result += '\b'; break;
case 'f': result += '\f'; break;
case 'n': result += '\n'; break;
case 'r': result += '\r'; break;
case 't': result += '\t'; break;
case 'v': result += '\v'; break;
case '\\': result += '\\'; break;
case '\'': result += '\''; break;
case '\"': result += '\"'; break;
case '?': result += '\?'; break;
default: break;
}
++i;
} else {
result += str[i];
}
}
return result;
}
int main() {
std::string str = "Hello\\nworld!";
std::cout << unescape(str) << std::endl;
return 0;
}
```
该函数遍历输入字符串中的每个字符,如果遇到反斜杠字符,则根据下一个字符的类型将其转换为对应的原始字符,并将其添加到结果字符串中。否则,将字符添加到结果字符串中。
该函数可以处理以下转义序列:`\a`(响铃符)、`\b`(退格符)、`\f`(进纸符)、`\n`(换行符)、`\r`(回车符)、`\t`(制表符)、`\v`(纵向制表符)、`\\`(反斜杠)、`\'`(单引号)和`\"`(双引号)。如果输入字符串中包含其他转义序列,则它们将转换为字面上的反斜杠后的字符。
在上面的示例中,输入字符串`"Hello\\nworld!"`中的`\n`将被还原为换行符,输出将是:
```
Hello
world!
```
C++ 如何去掉转义字符
要在 C++ 中去掉转义字符,可以使用反斜杠字符 '\\' 来表示转义字符本身。例如,如果要输出反斜杠字符 '\',可以使用两个反斜杠 '\\\\'。以下是一个示例代码:
```cpp
#include <iostream>
int main() {
std::string str = "Hello\\World!"; // 包含一个转义字符的字符串
std::cout << str << std::endl;
std::string unescapedStr;
for (char c : str) {
if (c != '\\') {
unescapedStr += c;
}
}
std::cout << unescapedStr << std::endl;
return 0;
}
```
输出结果:
```
Hello\World!
HelloWorld!
```
在上面的示例中,首先定义了一个包含转义字符的字符串 `str`,然后通过遍历字符串中的每个字符,将非转义字符添加到另一个字符串 `unescapedStr` 中。最后输出 `unescapedStr`,即已经去掉转义字符的字符串。