【发布时间】:2021-10-26 03:02:02
【问题描述】:
我有一个接收字符串 ex 的函数。 "rn" 我需要将'\' 字符附加到字符串的每个字母以获取"\r\n"。为了附加 '\' 字符,我需要使用额外的 '\' 对其进行转义,但这给了我错误的字符串。
例如:
QString s = "rn";
QString n = QString("\\%1\\%2").arg(s[0]).arg(s[1]);
qDebug() << n.compare("\r\n");
输出 79 而不是 0。我需要第一个字符串与 "\r\n" 相同,但我不确定如何正确附加 '\' 字符。
【问题讨论】:
-
n 是
"\\r\\n"而不是"\r\n" -
我怎样才能让它只是 \r\n 呢?如果我尝试 QString("\%1\%2) 比较输出是 101
-
\r是转义字符,它与字符 n 完全不同。我想用一个开关盒 -
你的问题是矛盾的。 (首先,您的示例显示“前置”而不是“附加”。)如果您将一个字符附加到另一个字符,则会得到两个字符。然而,
\r是一个字符,尽管我们用两个字符来描述它。您的真正目标是哪个,是在"\r\n"之前还是相同?你应该在你的问题中明确指出哪个是目标,哪个是你失败的尝试。 -
假设您确实想将字母
r转换为回车符,Convert string with explicit escape sequence into relative character 是相关的,但您可以做得比添加反斜杠然后转换新制作的转义序列更好。 (也就是整体的策略可以用,但是具体的实现会有所不同。)