1

Тема: Кількість слів, які містять однакову кількість голосних і приголосних

З клавіатури вводиться текстовий рядок. Розробити програму, яка виконує:
a) кількість слів, які містять однакову кількість голосних і приголосних букв;
б) виводить на екран найдовше слово;
в) видаляє з тексту слово-паліндроми;

Мені потрібно зробити завдання а (але можете перевірити і б і в на правильність)

#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
void set_longest(string* current_word, string* new_word)
{
  if (new_word->length() > current_word->length())
    *current_word = *new_word;
}
int is_palindrome(string* word)
{
  if (word->length() > 0)
  {
    size_t index1 = 0;
    size_t index2;
    index2 = word->length()-1;
    for(; index1 < index2; ++index1, --index2)
      if(word->at(index1) != word->at(index2))
        return 0;
  }
  return 1;
}
int main()
{
  string result = "";
  string s;
  string delimiter = " ";
  string longest_word = "";
  size_t pos;
  cout << "Enter your text and press [enter]: ";
  getline(cin, s);
  pos = s.find(delimiter);
  while (pos != std::string::npos)
  {
    string token;
    token = s.substr(0, pos);
    set_longest(&longest_word, &token);
    if (!is_palindrome(&token))
      result += token;
    result += delimiter;
    s.erase(0, pos + delimiter.length());
    pos = s.find(delimiter);
  }
  set_longest(&longest_word, &s);
  if (!is_palindrome(&s))
    result += s;
  cout << "The first longest word is: " << longest_word << endl;
  cout << "string w/o palindromes: " << result << endl;
  system ("pause");
  return 0;
}

2

Re: Кількість слів, які містять однакову кількість голосних і приголосних

Тут залежить від того, чи будете ви представляти рішення двох інших частин.
Першу частину можна зродити і без розбиття строки на слова (рішення так би мовити в лоб).
Однак, якщо будете представляти и дві інші, тоді актуальнішим буде створення двох функцій: підрахування голосних та підрахування приголосних і рахувати коли існує рівність значень.
Який варіант кращий для вас?