如何在QLatin1String中搜索子字符串
How to search substring in QLatin1String?
QLatin1String 类没有任何用于在其中搜索子字符串的操作(例如indexOf
、find
或contains
(的原因是什么?只有startsWith
和endsWith
我被发现,但他们无法在字符串中间搜索
至于为什么,你必须用Qt来解决这个问题。
一般来说,QLatin1String
用于表示我们过去所说的ASCII文本(没有Unicode(。 QString
是Qt中默认的全能字符串,你通常应该使用它,或者你可以将其转换为std::string
并使用它。其中任何一个都可能以副本为代价。
如果你想避免复制,QLatin1String
确实有begin()
和end()
函数,所以你也可以在上面使用标准算法,比如C++17的新std::search()
:
auto s = QLatin1String("The lazy dog");
auto needle = QLatin1String("azy");
auto it = std::search( std::begin(s), std::end(s),
std::boyer_moore_horspool_searcher( std::begin(needle), std::end(needle) ) );
这是一个使用 std::string
s 的工作示例,也适用于 Koliru 上的 QLatin1String
s。
在Bartek的编码博客上查看更多信息。
相关文章:
- 在对象数组中搜索字符串并返回相应值的函数
- 在 QTextEdit 中搜索字符串
- C++ 中用于搜索字符串模式的正则表达式
- 如何在文件中搜索字符串并打印包含该字符串的行
- 搜索字符串是否至少包含一次从 0 到 9 的所有数字的最有效方法
- 从文件中提取的数据中的C 搜索字符串失败
- 在数组中搜索字符串的所有术
- 在 main 中搜索字符串的结尾时出现分段错误,但不在函数C++中搜索
- 在字符串中搜索字符串序列
- c++搜索字符串列表中的特定字符串
- 从文件中读取一行,并在其中搜索字符串(c++)
- 在向量中搜索C++字符串s中的单词
- 在另一个进程的内存中搜索字符串的每个匹配项
- 当搜索字符串有空格时查找字符串
- 在结构向量中搜索字符串C++
- 搜索字符串中的第一个字符不同于"X"
- 搜索字符串(只查找完全匹配的字符串,不忽略大写或小写字符
- 如何在C++中搜索字符串数组
- 替换特定位置后出现的所有搜索字符串
- 搜索字符串以使用递归查找另一个字符串