Informatică, întrebare adresată de StefanCst28, 9 ani în urmă

Să se scrie un program care citeşte un şir de caractere format din litere mici ale alfabetului englez şi înlocuieşte fiecare vocală cu litera mare corespunzătoare.

Răspunsuri la întrebare

Răspuns de ap53
10
#include <iostream>
#include <cstring>
using namespace std;

int main(){
char s[22];
//citim sirul. NU contine spatii, poate fi citit cu cin >>
cin >> s;

for(int i=0;s[i] ;++i) //parcurgem sirul
if(strchr("aeiou",s[i]))  //daca pe pozitia curenta este vocala
s[i] -= 'a'-'A';  // o transformam in litera mare
/*
 * Pentru a transforma o litera mica in litera mare, folosim faptul 
 * ca diferenta intre litera mica si litera mare este aceeasi pentru
 * toate literele, si anume diferenta dintre 'a' si 'A', adica 'a'-'A'
 * 
 * Astfel, vom scadea din caracterul litera mica valoarea 'a'-'A'
 * 
 * Pentru a transforma o litera mare in litera mica, vom aduna la 
 * litera mare valoarea 'a' - 'A'
 * 
 * */

//afisam sirul modificat
cout << s ;
return 0;
}
Alte întrebări interesante