C 搜索文本文件中多行分开的字符串
C++ Search For A String Split Across Multiple Lines In a Text File
我有一个文本文件,该文件是文件分配表的修剪六角形,其中包括许多看起来像:
的行组成5e7f4c962f80d36dd2eb8fc9f20780e9
36e9f5c7645900000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
...
在此文件中,我想搜索特定的字符子字符串。但是,这有一些障碍。通常,我只使用ifstream和getline((,然后将line.find((应用于每行,直到找到/找不到找到子字符串为止。但是,使用此文件,目标基因带可能会跨多行分开。该文件在数千行中的长度也可能是数千个,因此首先要从文本文件中修剪字符不切实际(实际上,它实际上陷入了文本编辑器,如果我尝试的话会带来奇怪的结果(。完成我的搜索的有效方法是什么?
编辑:我还应该指出,我实际上想返回匹配的字符串的位置,因此不可能一次将2行串联在一起,仅删除该串联的 n n字符,搜索和如果找不到的话,请迭代。如果比赛以非Whitespace字符15000开始,我想返回15000。
您可以一次搜索一个char
,并与您的搜索匹配。
std::size_t findStringInFile(std::ifstream& file, std::string& string) {
auto it = string.begin();
char c;
while (file >> c) {
if (c == 'n')
continue;
if (c == *it)
++it;
else
it = string.begin();
if (it == string.end())
return file.tellg() - string.size();
}
return std::size_t(-1);
}
相关文章:
- 哪个更快:在 1d 向量中按字符串搜索还是在 2d 向量中按向量搜索?
- 有序地图字符串搜索与整数搜索之间的时间复杂度
- 使用图形的字符串搜索算法?C++
- C++子字符串搜索 - 跳入C++
- 字符串搜索 - 并行版本较慢
- 使用Robert Sedwick书中的符号表进行字符串搜索
- C++中的部分字符串搜索
- 哪个是更好的字符串搜索算法?Boyer-Moore或Boyer Moore Horspool
- 如何使用 c++ 将字符串搜索到字符串数组中
- 使用 C++ 在文件中进行字符串搜索/索引
- Qt5 中字符串搜索的最佳容器
- 优化.txt文件中的字符串搜索
- 字符串搜索输入中包含的单词
- Boyer-Moore-坏字符规则实现子字符串搜索
- 带星号*通配符的字符串搜索
- c++字符串搜索函数
- 最好的字符串搜索算法
- 通配符字符串搜索算法
- 在c++中使用字符串(搜索字符串,分割字符串,cout<<字符串)
- Strstr()函数重叠字符串搜索