• Miércoles 6 de Noviembre de 2024, 23:37

Autor Tema:  Generar String Aleatorio  (Leído 1188 veces)

sariputra

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Generar String Aleatorio
« en: Sábado 19 de Mayo de 2007, 20:36 »
0
Un saludo. intento conseguir un código que genere strings aleatorios. He intentado con esto que he localizado en cppreference.com

Código: Text
  1.  
  2.  
  3. /* malloc example: string generator*/
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. int main ()
  8. {
  9.   int i,n;
  10.   char * buffer;
  11.  
  12.   printf ("How long do you want the string? ");
  13.   scanf ("%d", &i);
  14.  
  15.   buffer = (char*) malloc (i+1);
  16.   if (buffer==NULL) exit (1);
  17.  
  18.   for (n=0; n<i; n++)
  19.     buffer[n]=rand()%26+'a';
  20.   buffer[i]='\0';
  21.  
  22.   printf ("Random string: %s\n",buffer);
  23.   free (buffer);
  24.  
  25.   return 0;
  26. }
  27.  
  28.  
  29.  


Pero toda vez que lo ejecuto me devulve el mismo valor ( siempre y cuando solicite la misma dimensión).

¿Alguien sabría hacerle un hack a este código para que cadas vez q ejecute el programa me devuelva una cadena diferente?, o en su defecto ¿ Alguien sabría ayudarme a obtener cadenas aleatorias, aunque sea con otro código?

Gracias

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Generar String Aleatorio
« Respuesta #1 en: Sábado 19 de Mayo de 2007, 21:16 »
0
Tenes que inicializar la "semilla", se suele hacer asi (usando la hora actual):

Código: Text
  1.  
  2. srand((unsigned int)time(0))&#59;
  3.  
  4.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

BadLog

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Generar String Aleatorio
« Respuesta #2 en: Martes 22 de Mayo de 2007, 03:40 »
0
debes agregar una pequeña linea. USA RANDOMIZE :


/* malloc example: string generator*/
#include <stdio.h>
#include <stdlib.h>

int main ()
{
 randomize;    //------  esto es todo :-) javascript:emoticon(':comp:')
smilie
smilie
 int i,n;
 char * buffer;

 printf ("How long do you want the string? ");
 scanf ("%d", &i);

 buffer = (char*) malloc (i+1);
 if (buffer==NULL) exit (1);

 for (n=0; n<i; n++)
   buffer[n]=rand()%26+'a';
 buffer='\0';

 printf ("Random string: %s\n",buffer);
 free (buffer);

 return 0;
}

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Generar String Aleatorio
« Respuesta #3 en: Martes 22 de Mayo de 2007, 07:55 »
0
Cita de: "BadLog"
debes agregar una pequeña linea. USA RANDOMIZE :
NO. Primero y principal esto ya esta respondido correctamente, segundo randomize no es standard como si lo es srand.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.