Insegnamento
Informatica
Data
May 1, 2022
Tipo di prova
SimulazioneProva completa
Soluzioni
Con soluzioni
/** Domanda 0. Scrivete una funzione int lettere(string s), che data
una stringa s restituisce la stringa formata dagli elementi di s
che sono lettere minuscole. Usate s+c per concatenare una stringa
e un carattere. Gli altri elementi devono scomparire e non solo
venire rimpiazzati da caratteri bianchi: per esserne sicuri, controllate
la lunghezza ottenuta. Esempio. Sia s = "abc123de" di 8 elementi.
Allora lettere(s)= "abcde" deve avere lunghezza 5.
*/
// TESTO DOMANDA 0: completare il programma
#include <math.h>
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
string lettere(string s) {
int l= s.length(); int i=0; int j=0;
string r = "";
while (i<l) {
if ('a'<=s[i] && s[i]<='z') {
r = r + s[i]; // costruisco la stringa di minuscole
// concatenando char per char
j=j+1;
}
i=i+1;
}
return r;
}
int main() {
string s = "abc123de";
string t = "123@#$zzz";
string r = "ABCDe";
cout << "ATTENZIONE\n" << "gli esempi inclusi possono non bastare a controllare se l'esercizio \212 corretto" << endl << endl;
cout << "s = " << s << " t = " << t << " r = " << r << endl << endl;
string ris1 = lettere(s), ris2 = lettere(t), ris3 = lettere(r);
cout << " lettere(s) = " << ris1 << endl;
cout << " length(lettere(s)) = " << ris1.length() <<endl;
cout << "dovreste ottenere abcde (lunghezza 5)" << endl << endl;
cout << " lettere(t) = " << ris2 << endl;
cout << " length(lettere(t)) = " << ris2.length() <<endl;
cout << "dovreste ottenere zzz (lunghezza 3)" << endl << endl;
cout << " lettere(r) = " << ris3 << endl;
cout << " length(lettere(r)) = " << ris3.length() << endl;
cout << "dovreste ottenere e (lunghezza 1)" << endl << endl;
cout << endl;
system("pause");
}