如何在 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\"");
所以我有以下不起作用的代码。我不知道该怎么做。
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\"");