Siruri de Caractere

Notiuni teoretice

SIRURI DE CARACTERE.doc

TESTE GRILA

TESTE GRILA.docx

PROBLEME PROPUSE

http://info.mcip.ro/?cap=Siruri%20de%20caractere


Probleme backtracking.doc

PROBLEME REZOLVATE

1. Se citeşte de la tastatură un cuvânt. Să se afişeze numărul iniţial de caractere ale cuvântului şi apoi să se şteargă toate vocalele din cuvânt.
#include
#include
#include
void main()
{int i;
char s[100];
cout<<“s=”;cin.get(s,100);
cout<<“Sirul are: “<
strlwr(s);
for(i=0;i
if(s[i]==‘a’||s[i]==‘e’||s[i]==‘i’||s[i]==‘o’||s[i]==‘u’)
strcpy(s+i,s+i+1);
cout<<“sirul fara vocale=”<
}

2. Se citesc de la tastatură 2 şiruri de caractere. Să se verifice dacă sunt egale (la fel) fără a se face deosebire între literele mari şi literele mici.
#include
#include
#include
char s1[100],s2[100];
void citire()
{
cout<<“primul sir: “;cin.get(s1,100);cin.get();
cout<<“al doilea sir “;cin.get(s2,100);
}
void compara()
{int x;
x=stricmp(s1,s2);
strlwr(s1);strlwr(s2);
//transformam cele doua siruri in siruri numai cu litere mici
if(x>0) cout<<“Primul sir este mai mare\n “;
else if(x==0) cout<<“Siruri sunt egale\n “;
else cout<<“Al doilea sir este mai mare decat primul\n “;
}
void main()
{citire();
compara();
}

3. Fişierul litere.txt conţine un text scris cu litere mari pe una sau mai multe linii. Se cere:
a) Să se afişeze litera ( literele) care apare de cele mai multe ori;
b) Să se afişeze vocalele din text.


#include
#include
#include
#include
ifstream f(“litere.txt”);
int n;
char a[100];
void citire()
{int i;
i=0;
f>>a[i];
while(!f.eof())
{cout<
i++;
/pt nu a avea surprize ca fisierul sa nu aiba decat majuscule
transformam sirul in majusculele
/

strupr(a);
f>>a[i];
}
n=i;
f.close();
}
void maxim()
{
int b[50];
cout<<”\n numarul de caractere=”<
int k=0;
for(char c=‘A’;c<=‘Z’;c++){
b[k]=0;
for(int j=0;j
if(c==a[j]) b[k]++;
k++;
}
int max=b[0];
for(int i=1;i
if(max
cout<<“caracterele cu numar maxim de aparitii=”<
for(i=0;i
if(b[i]==max)cout<
}
void vocale()
{char voc[]=“AEIOU”;
cout<<”\nvocalele din text\n”;
for(int i=0;i
for(int j=0;j
if(a[i]==voc[j])cout<
cout<<”\n”;
}
void main()
{citire();
maxim();
vocale();
}

4. Se citeşte un text într-o variabilă de tip string, in care cuvintele se despart prin spaţii. Se cere:
a) să se afişeze cuvintele în ordine alfabetică;
b) să se numere cuvintele cu minim 4 vocale distincte.

#include
#include
#include
char cuv[10][10];
int n;
void sortare()
{ char aux[10];int x;
for(int i=1;i
for(int j=1+i;j<=n;j++)
{x=strcmp(cuv[i],cuv[j]);
if(x>0){
strcpy(aux,cuv[i]);
strcpy(cuv[i],cuv[j]);
strcpy(cuv[j],aux);
}
}
for(i=1;i<=n;i++)cout<
cout<
}
int nrvocale(char s[10])
{char vocale[]=“aeiou”;int c;int nr=0;
strlwr(s);
for(int i=0;i
{ c=0;
for(int j=0;j
if(vocale[i]==s[j])c++;
if(c!=0)nr++;
}
if (nr>=4)return 1;
else return 0;

}
void vocale4()
{
for(int i=1;i<=n;i++)
if(nrvocale(cuv[i])==1)cout<
cout<<”\n”;
}
int main()
{char a[100],*p,separator[]=” “;
int i=0,nr=0;
cout<<“Dati sirul:“;cin.get(a,100);
strcpy(p,a);
p=strtok(p,separator);
while (p)
{strcpy(cuv[++nr],p);
p=strtok(NULL,separator);}
cout<<“Sunt “<
for (i=1;i<=nr;i++) cout<
n=nr;
sortare();
vocale4();
return 0;
}