View Full Version : Aiuto rand() su stringhe
In c++ ho usato sempre la funzione sugli interi (o comunque su numeri) senza nessun problema, ma ora ho bisogno di usarla su una stringa (string class).
In un codice ho trovato questo passaggio:
str = (rand() % 30) + 32;
dove str quindi è una stringa appartenente alla classe sopracitata. Cosa fa questo codice? io dovrei costruire una stringa random di 10 caratteri. Aiutatemi!! :mc:
Fenomeno85
28-09-2005, 14:17
In c++ ho usato sempre la funzione sugli interi (o comunque su numeri) senza nessun problema, ma ora ho bisogno di usarla su una stringa (string class).
In un codice ho trovato questo passaggio:
str = (rand() % 30) + 32;
dove str quindi è una stringa appartenente alla classe sopracitata. Cosa fa questo codice? io dovrei costruire una stringa random di 10 caratteri. Aiutatemi!! :mc:
non fai altro che crearti un numero che va da 32 a 62 e lo converti in carattere :)
~§~ Sempre E Solo Lei ~§~
Fenomeno85
28-09-2005, 14:19
la cosa strana è che i caratteri in asci vanno da 65 a 90 e 97 a 122 :mbe:
~§~ Sempre E Solo Lei ~§~
Fenomeno85
28-09-2005, 14:21
posteresti il codice completo please
~§~ Sempre E Solo Lei ~§~
Certo! grazie per la risposta tempestiva
void init_population(ga_vector &population, ga_vector &buffer )
{
int tsize = GA_TARGET.size();
for (int i=0; i<GA_POPSIZE; i++) {
ga_struct citizen;
citizen.fitness = 0;
citizen.str.erase();
for (int j=0; j<tsize; j++)
citizen.str += (rand() % 90) + 32;
population.push_back(citizen);
}
buffer.resize(GA_POPSIZE);
}
in pratica è un algoritmo genetico, e questa è la parte che inizializza il contenuto dei geni. ciascun gene è una struttura formata da una stringa di x caratteri e da un numero intero che ne rappresenta la fitness.
Fenomeno85
28-09-2005, 16:42
si funziona come ti avevo detto pocanzi
la cosa è semplice se hai presente la tabella ascii.
~§~ Sempre E Solo Lei ~§~
Grazie 1000 fenomeno85, sei stato molto chiaro...ho preso un libro con la tabella ascii ed è proprio come dici tu...mi sono lasciato ingannare dal fatto che fossero caratteri, invece è molto simile al caso dei numeri interi. Grazie ancora per l'aiuto...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.