feature image - https://source.unsplash.com/random/900×600/?wallpaper&sig=f4fa0117

Esercizio C++: generare una stringa pronunciabile

Esercizio

scrivere un programma che stampi a video una stringa di lunghezza casuale tra sei e dodici e che sia il pronunciabile.

Video

Soluzione

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>

const std::string consonanti{"bcdfghjklmnpqrstvwxyz"};

const std::string vocali{"aeiou"};

const std::string fonemi[]={
"cv",
"vc",
"cvc",
"vcv"
};

std::string generate_random_string(int length) {
std::string s;
int pos;
char c;
int idxFonema = 0;

do {
idxFonema = std::rand() %4;
for(auto cf:fonemi[idxFonema]) {
s.push_back(cf);
}
}while(s.size() < length);



for(int i = 0;i<s.size();i++){
if (s[i] == 'c'){
//generiamo una posizione pseudocasuale
pos = std::rand() % consonanti.size();
//accodiamo alla stringa
s[i] = consonanti[pos];
} else {
//generiamo una posizione pseudocasuale
pos = std::rand() % vocali.size();
//accodiamo alla stringa
s[i] = vocali[pos];
}

}
return s;
}

int main() {
std::srand(std::time(nullptr));
int str_len = 6+std::rand() % 5;

std::string str = generate_random_string(str_len);
std::cout << str;

std::cout << "\nbye.\n";
}

Esercizi sulle stringhe in C++

### Esercizi suggli array in C++

Esercizi sulle funzioni in C++

Esercizi sulle matrici / array bidimensionali in C++

Andrea Pollini

Matematico, informatico.