【问题标题】:Remove \x from Cstring从 Cstring 中删除 \x
【发布时间】:2019-12-27 10:10:14
【问题描述】:

有已分配给 Cstring 的 Byte*。因此 Cstring 具有格式为 \xData\xData 的十六进制数据。 我想从 Cstring 中删除 \x。 已尝试删除功能,但没有奏效。谁能建议如何删除 \x。

【问题讨论】:

  • \x 转义是一种在源常量中表示不可打印控制字符的方法。实际的 Cstring 变量包含一系列字符,每个字符可能是可打印的,也可能是不可打印的。您面临的真正问题是什么?
  • Cstring 有值\xData,我只想要数据部分如何得到?
  • 请举例说明您拥有什么以及您想要什么。
  • 我有 Cstring data =L"\x15\x16" 我想要的是 Cstring data = L"15 16"
  • 所以从字符串中去掉所有“\\x”。你必须在字符串中使用\` to replace a `。

标签: c++ mfc


【解决方案1】:

回答提出的问题(尽管它很可能不会询问实际问题)。您可以通过调用CString::Replace 轻松地将CString 中的任何序列替换为另一个序列:

CStringW transform(CStringW source)
{
    source.Replace(L"\\x", L" ");
    return source.Trim();
}

这通过将所有出现的字符序列\x 替换为空格字符来转换源字符串,然后删除所有前导和尾随空白字符。这实现了this comment 中要求的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2021-02-16
    相关资源
    最近更新 更多