PDA

Visualizza la versione completa : [C] Generare una stringa casuale


Alcott
06-12-2004, 12:32
Ciao a tutti,
avrei bisogno di generare una stringa di 10 lettere maiuscole. Cercando il precedenti post, ne ho trovato uno che si basa sulla funzione rand(), ma purtroppo non mi va bene perchè è pseudo casuale, e chiamando una funzione all'interno di un for che mi genera la stringa, orrengo sempre lo stesso risultato.

tommisceddu
06-12-2004, 12:38
prova ad utilizzare la funzione randomize() all'inizio della tua funzione. serve a generare stringhe sempre diverse. mentre utilizzando solo rand() la sequenza di generazione di stringhe è sempre la stessa.

Alcott
06-12-2004, 13:08
In quale header è definita?
Inoltre non saprei dove metterla :) Ti posto la funzione :D


void genera (char array[], int j) //j è il contatore del ciclo che chiama genera()
{
int i;
srand (i+j);
for (i=0; i<10; )
array[i++] = (char) ((rand() % 26)+ 65);
}

kentaromiura
06-12-2004, 13:29
Originariamente inviato da tommisceddu
prova ad utilizzare la funzione randomize() all'inizio della tua funzione. serve a generare stringhe sempre diverse. mentre utilizzando solo rand() la sequenza di generazione di stringhe è sempre la stessa.
:nonono:
non e' standard si deve utilizzare la funzione srand(time(NULL));
:D
http://forum.html.it/forum/showthread.php?s=&threadid=753477

kentaromiura
06-12-2004, 13:32
Originariamente inviato da Alcott
In quale header è definita?

srand in <stdlib.h>
time in <time.h>

Originariamente inviato da Alcott
Inoltre non saprei dove metterla :) Ti posto la funzione :D


void genera (char array[], int j) //j è il contatore del ciclo che chiama genera()
{
int i;
srand (time(NULL));
for (i=0; i<10; )
array[i++] = (char) ((rand() % 26)+ 65);
}

fatto. :D

Alcott
06-12-2004, 13:55
Mhm, purtroppo ancora non va...
Continua a generare stringhe uguali anche con srand(time(NULL)) :dhò:

kentaromiura
06-12-2004, 14:01
Originariamente inviato da Alcott
Mhm, purtroppo ancora non va...
Continua a generare stringhe uguali anche con srand(time(NULL)) :dhò:
:master: impossibile..

Alcott
06-12-2004, 18:21
Va va... errore mio nello scriverla :)
:ciauz:

edriv
06-12-2004, 20:12
anche con la srand() i numeri sono pseudo-casuali... in teoria la casualità perfetta non esiste! :fagiano:

LeleFT
06-12-2004, 20:16
Originariamente inviato da edriv
anche con la srand() i numeri sono pseudo-casuali... in teoria la casualità perfetta non esiste! :fagiano:
Non solo in teoria: anche nella pratica! Purtroppo il calcolatore può essere solo programmato per eseguire delle istruzioni e non certo per "lasciare al caso" qualcosa! :)

Ciao. :ciauz:

Loading