Как подсчитать количество слов в файле?

Помогите решить задачу по Яндекс.Контесту. Код я написал, он работает первые 5 тестов, однако 6 тест он не может пройти. Я использую вектор для хранения каждой линний файла, далее, использую второй вектор, который собирает слова. В конце вывожу размер второго вектора.

1 тест:

                The coronavirus, or COVID-19,             is inciting panic for a number of reasons. It's a new 
virus, meaning no one has immunity, and there is no vaccine.            Its novelty means that 
scientists aren't sure                yet how it behaves they have little            history to go on.

Ответ: 44

2 тест:

This                     is the               example test for                   my students

Ответ: 8

Вот код:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    ifstream myFile_Handler;
    string myLine;
    vector<string> v;
  
    

    myFile_Handler.open("input.txt");

    if (myFile_Handler.is_open())
    {
        // Keep reading the file
        while (getline(myFile_Handler, myLine))
        {

            v.push_back(myLine);

        }
        // File Close
        myFile_Handler.close();
    }
    else
    {
        return 0;
        //cout << NULL << endl;
    }
    

    vector<string> vv;
    string result = "";
    string commas = "''";
    string muns = "--";
    int cnt = 0, saver = 0;
    for (int i = 0; i < v.size(); i++) {
        for (int j = 0; j < v[i].size(); j++) {
            if ((v[i][j] >= 'A' && v[i][j] <= 'Z') ||(v[i][j] >= 'a' && v[i][j] <= 'z')|| v[i][j] == '\'' || v[i][j] == '-' || (v[i][j] >= '0' && v[i][j] <= '9')) {
                //result = result + v[i][j];
                saver = j;
                while ((v[i][j] >= 'A' && v[i][j] <= 'Z') || (v[i][j] >= 'a' && v[i][j] <= 'z') || v[i][j] == '\'' || v[i][j] == '-' || (v[i][j] >= '0' && v[i][j] <= '9')) {
                    cnt++;
                    j++;
                }
                //cout << cnt << endl;
                
                result = v[i].substr(saver, cnt);
                
                //если в тексте встретится слово как ''' или ---, то его не пушат в вектор
                if (result.find(commas) != std::string::npos || result.find(muns) != std::string::npos) {
                    //std::cout << "found!" << '\n';
                    continue;
                }
                else {
                    vv.push_back(result);
                }
                
                cnt = 0;
                
            }
            else {
                
                result = "";

            }
        }
    }
    
    cout << vv.size() << endl;


    return 0;
}

Ответы (0 шт):