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 sulle funzioni in C++
Esercizi sulle matrici / array bidimensionali in C++
Matematico, informatico.