从 Cstring 中删除 \x
Posted
技术标签:
【中文标题】从 Cstring 中删除 \\x【英文标题】: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
`。
【参考方案1】:
回答提出的问题(尽管它很可能不会询问实际问题)。您可以通过调用CString::Replace 轻松地将CString
中的任何序列替换为另一个序列:
CStringW transform(CStringW source)
source.Replace(L"\\x", L" ");
return source.Trim();
这通过将所有出现的字符序列\x
替换为空格字符来转换源字符串,然后删除所有前导和尾随空白字符。这实现了this comment 中要求的行为。
【讨论】:
以上是关于从 Cstring 中删除 \x的主要内容,如果未能解决你的问题,请参考以下文章