Sunteți pe pagina 1din 4

Algoritmică şi programare

Probleme cu şiruri de caractere

1. Se citeşte de la tastatură un cuvânt. Să se determine toate


prefixele şi toate sufixele acestui cuvânt.

#include<iostream>
using namespace std;
void main() {
char s[100];
int i,j,k;
cout<<"Cuvantul : ";cin>>s;
cout<<endl<<"Sufixe : "<<endl;
for(i=0;s[i];i++) {
for(j=i;s[j];j++)
cout<<s[j];
cout<<endl;
}
cout<<endl<<"Prefixe : "<<endl;
for(k=i-1;k>=0;k--) {
for(i=0;i<=k;i++)
cout<<s[i];
cout<<endl;
}
}
***********************************

2. Se citeşte de la tastatură un cuvânt. Să se afişeze


caracterele din cuvânt în ordinea crescătoare a
caracterelor ASCII.

#include<iostream>
using namespace std;
void main() {
char s[100];
int i,gasit=1;
char aux;
cout<<"Introduceti cuvantul : ";cin>>s;
while (gasit) {
gasit=0;
for(i=0;s[i+1];i++)
if(s[i]>s[i+1]) {
aux=s[i];
s[i]=s[i+1];
s[i+1]=aux;
gasit=1;
}
}
cout<<"Ordinea ASCII a caracterelor este : "<<s<<endl;
}
***********************************
1
3. Se citeşte de la tastatură un cuvânt. Să se afişeze
vocalele din acest cuvânt.

#include<iostream>
using namespace std;
void main() {
char s[100];
char v[]="aeiouAEIOU";
int i,j;
cout<<"Introduceti cuvantul : "; cin>>s;
for(i=0;s[i];i++) {
for(j=0;v[j];j++)
if(s[i]==v[j])
cout<<s[i]<<" ";
}
cout<<endl;
}
***********************************

4. Să se citească de la tastatură un cuvânt şi să se


transforme literele mici din cuvânt în majuscule.

#include<iostream>
using namespace std;
void main() {
char s[100];
int i;
cout<<"Introduceti cuvantul : "; cin>>s;
for(i=0;s[i];i++)
if(s[i]>='a' && s[i]<='z')
s[i]=s[i]-('a'-'A');
cout<<"Cuvantul nou obtinut este : "<<s<<endl;
}
***********************************

5. Să se citească de la tastatură un cuvânt şi să se numere


câte litere mici, câte litere mari şi câte cifre are acest
cuvânt.

#include<iostream>
using namespace std;
void main() {
char s[100];
int i, litere_mici=0, litere_mari=0, cifre=0;
cout<<"Introduceti cuvantul : "; cin>>s;
for(i=0;s[i];i++) {
if(s[i]>='a' && s[i]<='z')
litere_mici++;
if(s[i]>='A' && s[i]<='Z')
litere_mari++;
if(s[i]>='0' && s[i]<='9')
2
cifre++;
}
cout<<"Litere mici : "<<litere_mici<<endl;
cout<<"Litere mari : "<<litere_mari<<endl;
cout<<"Cifre : "<<cifre<<endl;
}
***********************************

6. Să se citească de la tastatură o propoziţie (finalizată cu


ENTER) în care cuvintele să fie separate prin câte un
singur spaţiu. Să se afişeze, pe câte un rând cuvintele
propoziţiei citite.

#include<iostream>
using namespace std;
void main() {
char s[200];
int i;
cout<<"Introduceti propozitia : ";
// urmatoarea instuctiune se va folosi cand
// vectorul de caractere contine si spatii
cin.get(s,199,'\n');
for(i=0;s[i];i++) {
if(s[i]!=' ')
cout<<s[i];
else
cout<<endl;
}
cout<<endl;
}
***********************************

7. Să se scrie un program care citeşte un şir de caractere şi


transformă, folosind un subprogram, şirul în şir cu litere
mici.
#include<iostream>
using namespace std;
void litere_mici(char s[30])
{
int i=0;
while(s[i]!=0) {
if((s[i]>=65) && (s[i]<=90))
s[i]=s[i]+32;
i++;
}
return;
}
void main(void)
{
char s[30];
int l;
cout<<"Introduceti sirul de caractere : ";cin>>s;

3
litere_mici(s);
cout<<"Sirul transformat in litere mici este : "<<s<<endl;
}
***********************************

8. Să se verifice dacă două cuvinte citite de la tastatură


rimează (spunem că două cuvinte rimează dacă ultimele două
caractere sunt identice).
#include<iostream>
using namespace std;
int rima(char s[30], char t[30])
{
int i=0,j=0;
while(s[i]!=0)
i++;
while(t[j]!=0)
j++;
if((s[i-1]==t[j-1]) && (s[i-2]==t[j-2]))
return 1;
else
return 0;
}
void main(void)
{
char s[30],t[30];
int l;
cout<<"Introduceti primul sir de caractere : ";cin>>s;
cout<<"Introduceti al doilea sir de caractere : ";cin>>t;
if(rima(s,t)==1)
cout<<s<<" rimeaza cu "<<t<<endl;
else
cout<<s<<" nu rimeaza cu "<<t<<endl;
}

Probleme propuse:

1. Să se citească de la tastatură un cuvânt şi un caracter x.


Să se elimine toate apariţiile lui x din cuvântul citit și
să se afișeze cuvântul obținut.
2. Să se citească de la tastatură un cuvânt şi să se determine
lungimea acestui cuvânt.
3. Să se citească de la tastatură un cuvânt şi să se afişeze
majusculele acestui cuvânt.

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