Portal SAMP
[Ajuda] Gerar caracteres aleatórios - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Gerar caracteres aleatórios (/showthread.php?tid=2509)



Gerar caracteres aleatórios - Sants - 23/06/2022

Gostaria de saber se existe alguma função ou como fazer uma que retorne caracteres aleatórios em uma string.
Grato.


RE: Gerar caracteres aleatórios - MarcosBrazz - 23/06/2022

Gera um caractere aleatorio de A-Z simplesmente utilizando a função 'random'
Código:
random(26) + 'A';

Exemplo:
Código:
printf("Caractere gerado: %s", random(26) + 'A');



RE: Gerar caracteres aleatórios - Sants - 23/06/2022

(23/06/2022 18:45)MarcosBrazz Escreveu: Gera um caractere aleatorio de A-Z simplesmente utilizando a função 'random'
Código:
random(26) + 'A';

Exemplo:
Código:
printf("Caractere gerado: %s", random(26) + 'A');

digo: uma string com uns 12 caracteres por exemplo


RE: Gerar caracteres aleatórios - MarcosBrazz - 23/06/2022

Código:
stock ReturnRandomString(){
new string[12] = EOS; //12 = numero de caracteres a ser gerado
for(new i; i < sizeof string; i++){
string[i] = (random(26) + 'A'); //Alterar para 'a' minusculo fará com que a o caractere gerado seja em minusculo
}
return string;
}
Uso:
Código:
printf("String aleatoria com 12 caracteres: %s", ReturnRandomString());



RE: Gerar caracteres aleatórios - Hatiro - 24/06/2022

(23/06/2022 18:10)Sants Escreveu: Gostaria de saber se existe alguma função ou como fazer uma que retorne caracteres aleatórios em uma string.
Grato.

Fiz assim, muda para o jeito que achar melhor.....
Código:
new charArray[12];
CMD:rndChar(playerid)
{
    strcat(charArray, "AB_JS_DL_CSS", sizeof(charArray)); //adicionando o texto...
    return printf("%c", array_rnd(charArray)); //imprimindo caractere usando parâmetro '%c'
}
stock array_rnd(const text_rnd[]){

text_rnd[random(strlen(text_rnd))]; //retornando um index dentro do tamanho da array sendo //ele, gerado aleatório.
return 1;
}
espero ter ajudado.


RE: Gerar caracteres aleatórios - Hatiro - 25/06/2022

(23/06/2022 18:10)Sants Escreveu: Gostaria de saber se existe alguma função ou como fazer uma que retorne caracteres aleatórios em uma string.
Grato.

Perdão eu não tinha entendido, agora está certo gerando 12 caractere ou o numero definido na stock 'constructArrayRnd' como primeiro parâmetro, sendo cada um dele aleatório e, em seguida incluindo eles dentro de uma string 'constructArray' que serve de resultado final.

Código:
//Comando para gerar
CMD:gerarstr(playerid)
{
    strcat(charArray, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", sizeof(charArray)); //formando cadeia de caracteres predefinida de escolha pessoal, mude se necessário.
   
    //troque '12' para outro numero maior para gerar strings aleatória maiores ou menor.
    printf("%s", constructArrayRnd(12)); //criando uma string com '12' caractere aleatória e, imprimindo string usando parâmetro '%s'
    SendClientMessage(playerid, -1, constructArrayRnd(12));
    return 1;
}
stock array_rnd(const text_rnd[]){

return text_rnd[random(strlen(text_rnd))]; //retornando um index dentro do tamanho da array sendo ele, gerado aleatório.
}

stock constructArrayRnd(max_length)
{
    constructArray[0] = EOS;
    new t[2];//Formatar caractere especial.
    for(new i = 0; i < max_length; i++)
    {
        format(t, sizeof(t), "%s", array_rnd(charArray));//Formatando caractere especial.
        strins(constructArray, t, i);//Incluindo caractere gerado especial com string de entrega.
    }
    return constructArray;
}