如何在 C++ 中将 " 保存在字符串中?

How to save " in a string in C++?

所以我有以下不起作用的代码。我不知道该怎么做。

 std::string str("Q850?51'18.23"");

我面临的第一个问题是"(引号)。我无法将它保存为字符串,因为在字符串的末尾我有两个 " 个字符,而 C++ 不允许我保存整个字符串。

其次我想拆分字符串并将其保存在不同的变量中。

例如;

double i = 850;
double j = 51;
double k = 18.23;

您需要escape您的引号:

std::string str("Q850?51'18.23\"");
//                            ^

您需要在字符串中转义您需要的引号;

std::string str("Q850?51'18.23\"");
//                            ^ escape the quote here

cppreference 站点列出了这些 escape sequences

或者您使用 raw string literal;

std::string str = R"(Q850?51'18.23")";

问题的第二部分取决于数据的格式和可预测性;

  • 如果是固定宽度,一个简单的索引,用于提取数字并转换为您需要的double
  • 如果它是用上面的字符分隔的,您可以使用字符串到每个分隔符,提取它们之间的数字(您应该能够找到合适的库来帮助完成此操作)。
  • 如果它是一些更进一步的未知组合,您可能仅限于一次使用字符串一个字符并提取非数值之间的数值。

您需要转义您的引号

"

前加一个反斜杠
std::string str("Q850?51'18.23\"");