c++ - 如何在运行时将字符串转换为自身的引用版本?

标签 c++ stdstring

给定一个 C++ 中的标准字符串对象,其中应包含转义序列,我如何在运行时将其转换为自身的引用版本?

std::string str("Foo said, \"bar\"\n");

鉴于以上情况,我想创建一个新字符串 quoted,它具有以下内容:

"\"Foo said, \\\"bar\\\"\\n\""

这只是一个例子。我需要使用任意字符串执行此操作。

我是否只需为每个可能的转义序列手动执行此操作?

最佳答案

c++14 有一个新的 std::quoted操纵器,例如

std::cout << quoted(str); // defaults to '"' as the quote and '\\' as the escape

std::ostringstream oss;
oss << quoted(str);
auto quoted_string = oss.str();

关于c++ - 如何在运行时将字符串转换为自身的引用版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110724/

相关文章:

c++ - Python 和 C++ 应用程序的简单但快速的 IPC 方法?

c++ - 包含数组的结构

c++ - 使用 C 或 C++(或 Ada 95)进行 Windows LDAP 组用户检查

c++ - 为什么 std::string 对象在使用默认构造函数构造时表现不同?

c++ - 如何调整 Levenshtein 距离算法以将匹配限制为单个单词?

java - 大型数组中元素的并行求和

c++ - 如何从多个 std::threads 手动发送 QSignal?

c++ - 将任何数据类型打包到 vector <uint8_t>

c++ - 我如何知道是否实际创建了 std::string?

C++ 字符串连接优化