Scrieţi un program C/C++ care citeşte de la tastatură o frază de maximum 255 de caractere (litere mari ale alfabetului englez şi spaţii), ale cărei cuvinte sunt despărţite prin câte un spaţiu şi afişează pe primul rând al ecranului numărul total al cuvintelor din frază, iar pe rândul următor de ecran, în ordine alfabetică, scrise o singură dată, consoanele care au apărut în frază (consoane sunt toate literele alfabetului englez, mai puţin A, E, I, O, U).Literele afişate sunt separate prin câte un spaţiu.
Exemplu: dacă se citeşte fraza LA BACALAUREAT SUBIECTELE AU FOST USOARE
se va afişa:
6
B C F L R S T
ArMyFoRHeLL:
Ai facut subprograme?
Răspunsuri la întrebare
Răspuns de
5
#include <iostream>
#include <string.h>
using namespace std;
int nrCuv(char s[])
{
int k=0;
char *p;
p=strtok(s," ");
while(p)
{
k=k+1;
p=strtok(NULL," ");
}
return k;
}
void afisCons(char s[])
{
int v[26]={0},n=strlen(s);
char voc[]="AEIOU ";
for(int i=0;i<n;i++)
if(!strchr(voc,s[i]))
v[s[i]-65]++;
for(int i=0;i<26;i++)
if(v[i]>0)
cout<<(unsigned char)(i+65)<<' ';
}
int main()
{
char s1[256],s2[256];
cin.get(s1,256);
strcpy(s2,s1);
cout<<nrCuv(s1)<<endl;
strcpy(s1,s2);
afisCons(s1);
return 0;
}
#include <string.h>
using namespace std;
int nrCuv(char s[])
{
int k=0;
char *p;
p=strtok(s," ");
while(p)
{
k=k+1;
p=strtok(NULL," ");
}
return k;
}
void afisCons(char s[])
{
int v[26]={0},n=strlen(s);
char voc[]="AEIOU ";
for(int i=0;i<n;i++)
if(!strchr(voc,s[i]))
v[s[i]-65]++;
for(int i=0;i<26;i++)
if(v[i]>0)
cout<<(unsigned char)(i+65)<<' ';
}
int main()
{
char s1[256],s2[256];
cin.get(s1,256);
strcpy(s2,s1);
cout<<nrCuv(s1)<<endl;
strcpy(s1,s2);
afisCons(s1);
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Fizică,
9 ani în urmă