Sunteți pe pagina 1din 3

1.

Un cuvânt s, de cel mult 20 caractere, format doar din litere mici ale
alfabetului englez, conţine cel puţin o consoană şi cel puţin o vocală. Scrieţi
programul C/C++ care citeşte de la tastatură cuvântul s, construieşte în
memorie şi afişează pe ecran cuvântul obţinut prin eliminarea tuturor
consoanelor din cuvântul s. Se consideră consoană oricare literă care nu se află
în mulţimea {a, e, i, o, u}.
Exemplu: dacă se citeşte cuvântul bacalaureat, pe ecran se afişează: aaauea

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
char s[21];
cin>>s;
int i=0;
while(s[i])
{
///testam daca s[i] e consoana
if(strchr("aeiou",s[i])==0)
strcpy(s+i,s+i+1); //stergem caracterul de la pozitia i
else
i++;
}
cout<<s;
return 0;
}

RECAP SIRURI DE CARACTERE

● Trecerea de la minuscula spre majuscula

int k=’a’-’A’;
s[i]=s[i]-k;
s[i]=s[i]+k;

● Verificare consoana
if(strchr(“aieou”,s[i])==0)

● Stergere
strcpy(s+i,s+i+1);

● Transformarea caracterului cifra in valoare numerica


3=’3’-’0’;
● DACA CONSTRUIM SIRUL NOU FOLOSIND CONCATENARE, TREBUIE SA IL INITIALIZAM
CU SIRUL VID !! (cu strcat)

4. Pentru compactarea mesajelor transmise intre doua terminale se inlocuieste


orice succesiune de mai multe caractere de acelasi fel cu un caracter #, urmat
de caracterul respectiv si de numarul de repetari succesive. Sa se scrie un
program care sa decompacteze un text citit.
Ex: f#v3tn#x4y → fvvvtnxxxxy.

#include <iostream>
#include <string.h>
using namespace std;
/**4. Pentru compactarea mesajelor transmise intre doua terminale se
inlocuieste orice succesiune de mai multe caractere de acelasi fel cu un caracter
#, urmat de caracterul respectiv si de numarul de repetari succesive. Sa se
scrie un program care sa decompacteze un text citit.
Ex: f#v3tn#x4y → fvvvtnxxxxy.
**/
int main()
{
char s[20], nou[30];
int i=0, j=0;
cin>>s;
while(s[i])
{
if(s[i]=='#')
{
int k=s[i+2]-'0';
while(k)
{
nou[j]=s[i+1];
j++;
k--;
}
i=i+3;
}
else
{
nou[j]=s[i];
j++;
i++;
}
}
nou[j]=NULL;
cout<<nou;
return 0;
}
5. Se citeste un cuvant.
a.Sa se afiseze cuvintele distincte ce se pot forma prin eliminarea cate unui
caracter.
adina - dina aina adna adia adin
b.Sa se afiseze cuvintele distincte ce se pot forma prin eliminarea a cate p
caractere.
adina si p =3 - ad aa na

a) #include <iostream>
#include <string.h>
using namespace std;

int main()
{
char s[21],c[21];//c e copia cuvantului
cin>>s;
for(int i=0;i<strlen(s);i++)
{
strcpy(c,s);
strcpy(c+i,c+i+1);
cout<<c<<endl;
}
return 0;
}

#include <iostream>
#include <string.h>
using namespace std;

b)
int main()
{
char s[21],c[21];//c e copia cuvantului
int p;
cin>>s;
cin>>p;
for(int i=0;i<=strlen(s)-p;i++)
{
strcpy(c,s);
strcpy(c+i,c+i+p);
cout<<c<<endl;
}
return 0;
}

S-ar putea să vă placă și