Помогите с информатикой, писать на С++
З клавіатури вводиться текстовий рядок. Розробити програму, яка
реалізує вказані дії.
а) підраховує кількість слів у тексті, які закінчуються на голосну літеру;
б) виводить на екран всі слова, довжина яких менша п'яти символів;
в) видаляє всі слова, які містять хоча б одну латинську літеру.
Answers & Comments
Один з можливих способів реалізації програми може бути наступним:
#include <iostream>
#include <cstring>
using namespace std;
// Функція, що перевіряє, чи є символ голосною літерою
bool isVowel(char ch) {
return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u';
}
// Функція, що перевіряє, чи є символ латинською літерою
bool isLatin(char ch) {
return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');
}
int main() {
// Введення тексту
cout << "Enter a text string: ";
string text;
getline(cin, text);
// Розбиття тексту на слова
string words[100];
int wordCount = 0;
int wordStart = -1;
for (int i = 0; i < text.length(); i++) {
if (text[i] == ' ' || text[i] == '\n' || text[i] == '\t') {
if (wordStart != -1) {
words[wordCount++] = text.substr(wordStart, i - wordStart);
wordStart = -1;
}
}
else if (wordStart == -1) {
wordStart = i;
}
}
if (wordStart != -1) {
words[wordCount++] = text.substr(wordStart, text.length() - wordStart);
}
// Завдання а)
int vowelEndingCount = 0;
for (int i = 0; i < wordCount; i++) {
if (isVowel(words[i][words[i].length() - 1])) {
vowelEndingCount++;
}
}
cout << "Number of words ending with a vowel: " << vowelEndingCount << endl;
// Завдання б)
cout << "Words with length less than 5: ";
for (int i = 0; i < wordCount; i++) {
if (words[i].length() < 5) {
cout << words[i] << " ";
}
}
cout << endl;
// Завдання в)
cout << "Text without words containing latin letters: ";
for (int i = 0; i < wordCount; i++) {
bool hasLatin = false;
for (int j = 0; j < words[i].length(); j++) {
if (isLatin(words[i][j])) {
hasLatin = true;
break;
}
}
if (!hasLatin) {
cout << words[i] << " ";
}
}
cout << endl;
return 0;
}