Se citește de la tastatură un text format din cel mult 70 de caractere care conţine cuvinte separate prin spații. Fiecare cuvânt este format din litere mari sau mici ale alfabetului limbii engleze, sau din cifre. Primul şi ultimul caracter ale textului sunt diferite de caracterul spaţiu.
Să se scrie un program, în limbajul C/C++, care:
a) să afişeze pe prima linie a ecranului câte litere mici există în text;
b) să scrie pe următoarele linii cuvintele din textul iniţial care încep cu o consoană.
nitzuuvfx89:
ajutor va roggg
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
#include <cctype>
char t[71];
bool vocal(char x) {
x = tolower(x);
return x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u';
}
size_t afisare(size_t j) {
while (t[j] && t[j] != ' ')
std::cout << t[j++];
std::cout << '\n';
return j + (t[j] == ' ');
}
size_t salt(size_t j) {
while (t[j] && t[j] != ' ')
++j;
return j + (t[j] == ' ');
}
int main() {
std::cin.getline(t, 71);
size_t i;
{
size_t m = 0;
for (i = 0; t[i]; ++i)
if (islower(t[i]))
++m;
std::cout << m << '\n';
}
i = 0;
while (t[i])
i = (!vocal(t[i]) ? afisare : salt)(i);
}
Alte întrebări interesante
Istorie,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Istorie,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă