QString的indexOf匹配问题

介绍使用indexOf存在匹配字符(串)却匹配不到的问题。

问题重现

  先看例子:

1
2
QString string("hello\0world!");
qDebug()<<string.indexOf("world"); // 打印-1

  由上面例子我们可以看出,indexOf只匹配’\0’前的内容。’\0’是一个空字符常量,它表示一个字符串结束

问题分析

  问题出在构造字符串中,由于hello后面跟着’\0’,导致string构造的是hello的内容。