Ir para conteúdo
Fórum Script Brasil
  • 0

WesleyMS

Pergunta

Sou iniciante em C e estou criando um rpg, então elaborei o seguinte codigo que sorteia palavras contidas em 3 vetores: nome1, nome2, nome3, e concatena em nomepronto para formar nome de inimigos. O problema é que algumas vezes o primeiro nome nāo aparece, e outras sai caracteres estranhos. Acredito que tenha haver com o caractere nulo, mais nāo tenho ideia de como concertar isso:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main ()
{
    char nomepronto[2][50];
    
    char nome1[8][50] = {"DRAGAO","LADRAO","REI","POLVO","MONSTRO","LEAO","HOMEM"};
    
    char nome2[8][50] = {" ESMAGADOR DE"," COMEDOR DE"," VENDEDOR DE"," CHUPADOR DE", " ARRANCADOR DE", " MANIPULADOR DE"," FURTADOR DE"," ADORADOR DE"};
    
    char nome3[8][50] = {" CABEÇAS", " TRIPAS", " OSSOS", " SANGUE", " OLHOS", " CACHORRO", " COBRAS", " DEMONIOS"};
    
    int x;
    int y;
    int z;
    
    srand((unsigned)time(NULL));
    
    //SORTEIA NUMEROS DE 1-8 PRA CADA VARIAVEL
    
    x = rand() % 8;
    
    y = rand() % 8;
    
    z = rand() % 8;
    
    //CONCATENA POR ORDEM EM OUTRA VARIAVEL
    
    strcat(nomepronto[1], nome1[x]);
    strcat(nomepronto[1], nome2[y]);
    strcat(nomepronto[1], nome3[z]);
    
    printf("\n\n%s", nomepronto[1]);
}
 

 

Screenshot_2016-11-08-19-55-13.jpg

Screenshot_2016-11-08-19-57-40.jpg

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0


 

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>

int main ()
{
    char nomepronto[2][50];
    
    char nome1[8][50] = {"DRAGAO","LADRAO","REI","POLVO","MONSTRO","LEAO","HOMEM"};
    
    char nome2[8][50] = {" ESMAGADOR DE"," COMEDOR DE"," VENDEDOR DE"," CHUPADOR DE", " ARRANCADOR DE", " MANIPULADOR DE"," FURTADOR DE"," ADORADOR DE"};
    
    char nome3[8][50] = {" CABEÇAS", " TRIPAS", " OSSOS", " SANGUE", " OLHOS", " CACHORRO", " COBRAS", " DEMONIOS"};
    
    int x;
    int y;
    int z;
    
    srand((unsigned)time(NULL));
    
    //SORTEIA NUMEROS DE 1-8 PRA CADA VARIAVEL
    for(int i=0; i<300; i++){
	
    x = rand() % 8;
    
    y = rand() % 8;
    
    z = rand() % 8;
    
    //CONCATENA POR ORDEM EM OUTRA VARIAVEL
    memset(&nomepronto[1], 0, sizeof(nomepronto[1]));
    strcat(nomepronto[1], nome1[x]);
    strcat(nomepronto[1], nome2[y]);
    strcat(nomepronto[1], nome3[z]);
    
    printf("\n\n%s %d - %d - %d ", nomepronto[1], x, y, z);
}
}
 

Testei aqui e funcionou perfeitamente. Talvez seja uma peculiaridade do android.

Editado por rickayron
Formatação do código
Link para o comentário
Compartilhar em outros sites

  • 0

Ah sim, pude rodar o codigo agora, foi muito util, alterei a rand  para 7 e não deu mais falhas

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>

int main ()
{
    char nomepronto[2][50];
    
    char nome1[8][50] = {"DRAGAO","LADRAO","REI","POLVO","MONSTRO","LEAO","HOMEM"};
    
    char nome2[8][50] = {" ESMAGADOR DE"," COMEDOR DE"," VENDEDOR DE"," CHUPADOR DE", " ARRANCADOR DE", " MANIPULADOR DE"," FURTADOR DE"," ADORADOR DE"};
    
    char nome3[8][50] = {" CABEÇAS", " TRIPAS", " OSSOS", " SANGUE", " OLHOS", " CACHORRO", " COBRAS", " DEMONIOS"};
    
    int x;
    int y;
    int z;
    
    srand((unsigned)time(NULL));
    
    //SORTEIA NUMEROS DE 1-8 PRA CADA VARIAVEL
    for(int i=0; i<300; i++){
	
    x = rand() % 7;
    
    y = rand() % 8;
    
    z = rand() % 8;
    
    //CONCATENA POR ORDEM EM OUTRA VARIAVEL
    memset(&nomepronto[1], 0, sizeof(nomepronto[1]));
    strcat(nomepronto[1], nome1[x]);
    strcat(nomepronto[1], nome2[y]);
    strcat(nomepronto[1], nome3[z]);
    
    printf("\n\n%s %d - %d - %d ", nomepronto[1], x, y, z);
}
}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...