Найти кол-во слов. С++

Код проходит 16 из 22 тестов, никак не могу понять где ошибка. Помогите пожалуйста)


Дана строка, возможно, содержащая пробелы. Определите количество слов в этой строке. Слово - это несколько (возможно, одна) подряд идущих букв латинского алфавита (как заглавных, так и строчных).

ВХОДНЫЕ ДАННЫЕ Программа получает на вход строку, содержащую произвольные ASCII-символы.

ВЫХОДНЫЕ ДАННЫЕ Программа должна вывести одно число - количество слов.

ПРИМЕР

ввод

Yesterday, all my troubles seemed so far away

вывод

8

#include <iostream>
#include <string>

using namespace std;

int main() {
    int res = 0;
    string c;
    getline(cin, c);
    for (int i = 1; i < c.size() - 1; i++)
    {
        (c[i] == 32 && ((c[i + 1] > 64 && c[i + 1] < 91) || (c[i + 1] > 96 && c[i + 1] < 123))) {
            res += 1;
        }
    }
    cout << res + 1;

}

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

Автор решения: Andrej Levkovitch

Для подобных задач стоит использовать регулярки - это прям то, для чего они были созданы:

#include <iostream>
#include <iterator>
#include <regex>
#include <string>
#include <cstdlib>

int main() {
  std::string str;

  std::copy(std::istreambuf_iterator<char>{std::cin},
            std::istreambuf_iterator<char>{}, std::back_inserter(str));

  std::regex regex{"[a-zA-Z]+"};
  std::sregex_token_iterator{str.begin(), str.end(), regex};

  size_t count =
      std::distance(std::sregex_token_iterator{str.begin(), str.end(), regex},
                    std::sregex_token_iterator{});

  std::cout << count << std::endl;

  return EXIT_SUCCESS;
}
→ Ссылка
Автор решения: Harry

Вот вся ваша программа:

int CountWords(const char * s)
{
    int count = 0;
    for(const char * c = s; *c; ++c)
        if (isalpha(*c) && !isalpha(*(c+1))) ++count;
    return count;
}

int main()
{
    string s;
    getline(cin,s);
    cout << CountWords(s.c_str()) << endl;
}

Все тесты пройдены...

Кстати, вас там в задачке просят сделать отдельную функцию :) Не думаю, что проблема в этом, но если есть условие - его следует выполнять :)

→ Ссылка