Я пишу программу для анализа некоторых данных, сохраненных в виде текстовых файлов. Я пытаюсь найти местоположение каждой иглы в стоге сена. Я уже могу прочитать файл и определить количество вхождений, но я также хочу найти индекс.Найти все вхождения и местоположения подстроки
ответ
string str,sub; // str is string to search, sub is the substring to search for
vector<size_t> positions; // holds all the positions that sub occurs within str
size_t pos = str.find(sub, 0);
while(pos != string::npos)
{
positions.push_back(pos);
pos = str.find(sub,pos+1);
}
Редактировать я неправильно понял ваш пост, вы сказали подстроку, и я предположил, что вы означало, что вы искали строку. Это будет работать, если вы прочитаете файл в строке.
= что, если файл имеет длину 100 ГБ? Это еще работает? –
Файл не очень длинный. Это должно работать отлично :) спасибо! –
@Steve - Если он умеет читать 100GB-файл в строку, как я уже сказал, тогда да, это сработает. –
Я знаю ответ был принят, но это также будет работать, и избавит вас от необходимости загружать в файл в строку ..
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
const char foo[] = "foo";
const size_t s_len = sizeof(foo) - 1; // ignore \0
char block[s_len] = {0};
ifstream f_in(<some file>);
vector<size_t> f_pos;
while(f_in.good())
{
fill(block, block + s_len, 0); // pedantic I guess..
size_t cpos = f_in.tellg();
// Get block by block..
f_in.read(block, s_len);
if (equal(block, block + s_len, foo))
{
f_pos.push_back(cpos);
}
else
{
f_in.seekg(cpos + 1); // rewind
}
}
}
- 1. Найти все вхождения подстроки в строке
- 2. Python - найти все вхождения подстроки (включая перекрытие)?
- 3. Python. Как найти все вхождения подобранной подстроки?
- 4. PHP Найти все вхождения подстроки в строке
- 5. Как найти все вхождения подстроки в C
- 6. Все вхождения подстроки в строке
- 7. Как найти и заменить все вхождения подстроки в строке?
- 8. Найти и заменить все вхождения подстроки в C
- 9. Найти все повторяющиеся неперекрывающиеся подстроки и циклы
- 10. Каков самый быстрый способ найти все вхождения подстроки?
- 11. Найти все вхождения подстроки в строке в Java
- 12. Найти все вхождения подстроки с питоном, разделенные максимальным расстоянием
- 13. Как найти все вхождение подстроки?
- 14. Найти индекс последнего вхождения подстроки в строке
- 15. найти небольшие вхождения подстроки в строке
- 16. Получить все вхождения подстроки соответствия шаблона
- 17. Как удалить все вхождения символа/подстроки?
- 18. Как найти вхождения подстроки в строке
- 19. Найти позицию первого вхождения подстроки в строке
- 20. Найти вхождения подстроки в строку, используя php?
- 21. Как подсчитать вхождения подстроки?
- 22. Найти все подстроки строки
- 23. Удалить вхождения подстроки рекурсивно
- 24. Найти все вхождения экземпляра объекта
- 25. Заменяет указанные вхождения подстроки
- 26. Найти все вхождения $ через последнюю заглавную букву
- 27. найти все подстроки между $ {и} в javascript
- 28. Найти все подстроки в строке
- 29. Как найти все экземпляры подстроки?
- 30. найти все подстроки, соответствующие шаблону
Подробнее пожалуйста. Образец кода был бы очень полезен для понимания того, что вы пытаетесь сделать. –
если не код, то желаемый выход для небольшого ввода образца –