修改包含“\”的 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('\'');
不会拆分或任何东西,因为此字符串不包含引号字符或撇号。它也不会尝试拆分或删除斜杠字符,因为这又是一个转义序列,但种类不同。
现在请记住,调试器以转义形式向您显示这些不可打印的字符,以向您显示实际内容。在实时应用程序中,用户将看不到任何东西或一些奇怪的字形。
我正在尝试修改 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('\'');
不会拆分或任何东西,因为此字符串不包含引号字符或撇号。它也不会尝试拆分或删除斜杠字符,因为这又是一个转义序列,但种类不同。
现在请记住,调试器以转义形式向您显示这些不可打印的字符,以向您显示实际内容。在实时应用程序中,用户将看不到任何东西或一些奇怪的字形。