【问题标题】:Remove "\" from CString in C++ [closed]从 C++ 中的 CString 中删除“\”[关闭]
【发布时间】:2018-06-17 10:04:37
【问题描述】:

如何从 CString 中删除此字符 \

例如:我有这个内容为“这是\一个字符串”的字符串

如何从我的字符串中删除\

非常感谢。

【问题讨论】:

  • 您的问题不清楚。字符串打印到std::coutthis is \a string(即反斜杠和'a' 在屏幕上可见)还是this is string(反斜杠和'a' 不可见?每种都有不同的解决方案案例。
  • 从字符串中删除 `\` 字符就像从字符串中删除任何其他字符一样。这是一个简单的操作,通过 CSting::Remove 类成员公开。
  • @IInspectable 他可能没有意识到` is a prefix for formatting codes like \t. So iif he wants to delete a ` 他可能必须使用`\`。但我知道你知道! :)
  • 请将您的问题edit 显示the code you have so far。您应该至少包含您遇到问题的代码的大纲(但最好是minimal reproducible example),然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask

标签: c++ visual-c++ mfc


【解决方案1】:

CString 很简单:

cstr.Remove('\\');

【讨论】:

  • 不确定 OP 实际上是否只想删除 ``.听起来像XY Problem
  • 它不适用于这个 CString = "\""
  • @HieuLe .Remove('\"') 在这种情况下,问题出在哪里?
  • @Blacktempel:是的,我只想删除'\'。
  • @Blacktempel:我发现了我的问题。打印到窗口时,字符串 '\"' 将仅打印 '"'。所以我不再需要删除'\'。我的问题解决了。非常感谢。
【解决方案2】:
  #include <algorithm>
  ...
  // Use replace with substitute a space in place of the \ char.
  std::replace(my_string.begin(), my_string.end(), '\\', ' ');
  // or remove it all together.
  std::remove(my_string.begin(), my_string.end(), '\\')

【讨论】:

  • 看起来不像CString
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
相关资源
最近更新 更多