Найти число вхождений и количество строк в текстовом файле? - PullRequest
1 голос
/ 05 марта 2020

Суть проблемы заключается в следующем:

Поиск в массиве строкового типа значения строкового типа, считанного из текстового файла, и вывод числа случаев и напечатайте количество строк, в которых встречается ключевое слово.

Ожидаемый результат:

Keyword: union

Total # of keyword occurrences: 87
Total # of lines with occurrences: 29

Ниже описана функция, которую я написал для этого.

void search(int IDs[], string posts[], int size)
{
    string keyword = "";
    int postCount = 0;
    int lineCount = 0;
    int pos = 0;
    bool found = false;
    cout << "Enter keyword: " << endl;
    cin >> keyword;
    for(int i = 0; i < size; i++)
    {
        while((pos >= 0 && pos <= size))
        {
            pos = posts[i].find(keyword,pos);
            lineCount++;
            pos++;

        }
        if((pos >= 0 && pos <= size-1))
        {
            postCount++;
        }
    }
    cout << "Total # of Occurances: " << lineCount + postCount << endl;
    cout << "Total # of Posts: " << postCount << endl;
}

Я запустил код выше и получил вывод ниже:

Keyword: union

Total # of keyword occurrences: 1
Total # of lines with occurrences: 0

Я несколько раз спрашивал своего профессора, что делать, и он сказал мне, что я должен найти ключевое слово в каждой строке, а затем начинайте с pos+1 в строке, чтобы продолжить эффективный поиск следующих вхождений и отслеживать, сколько раз я «нахожу» ключевое слово, и если я его не нахожу, то не считайте линия вообще.

...