Generar cadena aleatoria en C

Generar cadena aleatoria en C

Resumen: mostrar cómo generar cadena aleatoria en C, de cualquier longitud, usando srand.

Vamos a ver cómo obtener un carácter aleatorio de una muestra y agregarlo a la cadena de destino usando ANSI C.

Generar cadena aleatoria en C

El algoritmo es sencillo. Debemos definir nuestra muestra, es decir, de donde tomaremos los caracteres:

Ahora debemos hacer un ciclo desde 0 hasta la longitud de la cadena de destino. En cada paso del ciclo:

  1. Generamos un índice aleatorio que esté en los límites de la muestra
  2. A la cadena de destino le asignamos el carácter que esté en la muestra, usando el índice aleatorio.

Como sabemos, las cadenas en C son un poco complejas así que lo haremos en forma de función en donde quien invoca a la función indica el destino y la longitud.

Función en C

El código queda así:

Como ves, recibimos la longitud y la cadena de destino, así evitamos cometer errores de cadenas, pues el que invoca a la función debe definirla.

Por cierto, el índice aleatorio es generado en la línea 4 con rand.

Código completo para generar cadena aleatoria en C

Generar cadena aleatoria en C
Generar cadena aleatoria en C

El código queda así:

No olvides que se debe alimentar a srand, lo que hacemos en la línea 27. Después definimos la cadena de destino cuya longitud debe estar definida en tiempo de ejecución y debe ser constante, para ello usamos #define.

Finalmente en la línea 29 invocamos a cadena_aleatoria en donde indicamos la longitud así como el destino, y como no regresa nada (pues modifica internamente a la cadena) no esperamos el resultado, ya que simplemente basta con imprimir destino.

Si quieres puedes ejecutar el código en línea.

También puedes explorar más ejercicios sobre C.

Nota importante: este método no sirve para generar contraseñas, no lo uses para cosas de seguridad, ya que no es criptográficamente seguro.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

2 comentarios en “Generar cadena aleatoria en C”

Dejar un comentario