【问题标题】:How to save " in a string in C++?如何在 C++ 中将 " 保存在字符串中?
【发布时间】:2015-10-05 14:48:26
【问题描述】:

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

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

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

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

例如;

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

【问题讨论】:

  • 您只需要谷歌搜索所有内容。对不起。
  • @Niall 谢谢。它奏效了。
  • 在尝试使用该语言之前,您应该阅读该语言的初学者指南以便学习基础知识。

标签: c++ string escaping


【解决方案1】:

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

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
  • 如果使用上述字符分隔,您可以将字符串用于每个分隔符,提取它们之间的数字(您应该能够找到合适的库来帮助解决此问题)。
  • 如果是一些更未知的组合,您可能会被限制为一次使用一个字符并提取非数值之间的数值。

【讨论】:

    【解决方案2】:

    你需要escape你的引号:

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

    【讨论】:

      【解决方案3】:

      你需要转义你的引号

      "之前添加反斜杠

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

      【讨论】:

        猜你喜欢
        • 2015-10-14
        • 2013-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-10
        • 1970-01-01
        • 2010-11-20
        相关资源
        最近更新 更多