修改包含“\”的 QString

Modifying a QString that contains a "\"

我正在尝试修改 QString。我要修改的 Qstring 是

"[=10=]2"

然而,当我尝试修改它时,字符串要么被完全删除,要么没有显示任何变化。

我试过了

String.split("\"");
String.remove("\"");
String.remove(QChar('\'');

出于某种原因,Qt 要求我添加一个额外的 " 或 ' 以便编译并且不会产生错误

我目前拥有的是这个

string = pointer->data.info.get_type();

根据调试器 returns "\002"

string = string.remove(QChar('\''));

删除功能之后什么都不做。

我希望从字符串中删除 \,但它要么被完全删除,要么没有任何反应。可能是什么问题以及如何将 Qstring 修改为数值?

您目前要求 Qt 从您的字符串中删除 ",而不是 \。要删除 \,您必须 escape 它,就像您转义 " 一样,即 remove("\").

首先,您的字符串 "[=11=]2" 不包含任何斜杠、引号或撇号。 阅读有关 C++ 字符串文字的信息。这是escape sequence。 注意\nnn表示任意八进制值!

所以你的文字只包含一个十进制值的字符2!这是 ASCII 空间代码含义:STX(文本开始)

结果是这段代码:

String.split("\"");
String.remove("\"");
String.remove(QChar('\'');

不会拆分或任何东西,因为此字符串不包含引号字符或撇号。它也不会尝试拆分或删除斜杠字符,因为这又是一个转义序列,但种类不同。

现在请记住,调试器以转义形式向您显示这些不可打印的字符,以向您显示实际内容。在实时应用程序中,用户将看不到任何东西或一些奇怪的字形。