我正在尝试修改QString。我试图修改的Qstring是
"\002"
但是,当我尝试修改它时,字符串要么被完全删除,要么显示没有变化。
我试过了
String.split("\"");
String.remove("\"");
String.remove(QChar('\'');
由于某种原因,Qt要求我添加一个额外的“或”以便编译而不会产生错误
我现在拥有的是这个
string = pointer->data.info.get_type();
根据调试器返回“\ 002”
string = string.remove(QChar('\''));
删除功能后来没有任何作用。
我期望从字符串中删除\,但要么完全删除,要么没有任何反应。可能是什么问题,如何将Qstring修改为数值?
你现在要求Qt从你的字符串中删除"
,而不是\
。要删除\
,你必须escape它,就像你逃脱"
,即remove("\\")
。
首先,你的字符串"\002"
不包含任何斜杠,引号或撇号。阅读有关C ++字符串文字的内容。这是escape sequence。注意\nnn
代表任意八进制值!
所以你的文字只包含一个值十进制值2
的字符!这是ASCII空间代码含义:STX
(文字开头)
结果这段代码:
String.split("\"");
String.remove("\"");
String.remove(QChar('\'');
不会拆分或任何东西,因为此字符串不包含引号字符或撇号。它也不会尝试拆分或删除斜杠字符,因为这是一个转义序列,但不同类型。
现在请记住,调试器会以转义形式向您显示此不可打印的字符,以显示实际内容。在实时应用程序中,用户将看不到任何或一些奇怪的字形。