School-Coding-Cpp/sfusi/esercizio1_stringhe_generaP...

57 lines
1.3 KiB
C++

/*
Nome: Mario
Cognome: Montanari
Generare una parola a caso (sicuramente pronunciabile), esempio: MUSETO.
Consonanti = "BCDFGLMNPRSTVZ".
Vocali = "AEIOU".
Ogni sillaba è consonante + vocale, esempio: BA.
Il numero di sillabe viene deciso da input o in modo randomico.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <iostream>
#define N_SILL 4
using namespace std;
void generaParola(int numSillabe, char* parola, int maxLen);
int main() {
const int MAX_LEN = 20;
char parolaGenerata[MAX_LEN];
srand((unsigned)time(NULL));
int numSillabe = rand() % 3 + 2;
generaParola(numSillabe, parolaGenerata, MAX_LEN);
printf("Parola generata: %s\n", parolaGenerata);
return 0;
}
void generaParola(int numSillabe, char* parola, int maxLen) {
const char consonanti[] = "BCDFGLMNPRSTVZ";
const char vocali[] = "AEIOU";
parola[0] = '\0';
int currentLen = 0;
for (int i = 0; i < numSillabe; i++) {
if (currentLen + 2 >= maxLen) break;
char sillaba[3];
sillaba[0] = consonanti[rand() % (sizeof(consonanti) - 1)];
sillaba[1] = vocali[rand() % (sizeof(vocali) - 1)];
sillaba[2] = '\0';
strcat(parola, sillaba);
currentLen += 2;
}
}