Generar un string aleatorio en C++

No sé, es algo que se me ocurrió y que es muy fácil de hacer. Lo único que tenemos que hacer es ver a un string no como una frase, sino como un conjunto de caracteres; y además ver a los caracteres no como letras, sino números del código ASCII.

Teniendo esto claro, es muy fácil generar un números aleatorios (que representas letras) para llenar cada elemento del arreglo que es nuestro string. Veamos:

#include
#include
#include
using namespace std;

int main()
{
    char strrnd[10];
    srand(time(NULL));
    for(int i=0; i <= 9; i++)
        strrnd[i] = 33 + rand() % (126 - 33);
    cout << strrnd;
    cin.get();
}
  1. Primero declaramos un string de nombre strrnd.
  2. Luego inicializamos nuestro random.
  3. Con un ciclo recorremos cada elemento del string.
  4. Y cada elemento lo llenamos con un número aleatorio entre 33 y 126, que en el código ASCII representan todos las símbolos letras y números normales.
  5. Y listo, ya hemos creado un string aleatorio en c++.

Si tienen duda con los números aleatorios pueden checar este post: Obtener número aleatorios en c++. Aquí pueden ver el código ASCII.

Si quieren que muestre, por ejemplo, solo letras minúsculas, tendrían que modificar la fórmula del random para que generara números entre el 97 y 122.

4 thoughts on “Generar un string aleatorio en C++

  1. como seria para generar solo algunas letras ya que necesito llenar una matriz con las letras a c g y t solo con esas 4 y no con un intervalo
    ojala me puedas ayudar

  2. Hola, buenas tardes. Tengo una consulta, tengo que crear para un trabajo practico de la facultad una matriz de 3×3 que se llene con letras aleatorias de la A hasta la I y que NO SE REPITAN. esto que creaste aca arriba me sirve de algo pero no logro hacer que no se repitan. desde ya muchas gracias

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s