Pular para o conteúdo

Sortear um vetor de caracter em C

Responder tópico
  • Denunciar
  • Indicar

1. Sortear um vetor de caracter em C

Enviado em 25/06/2011 - 17:18h

E ai galera...
Tô com uma dúvida aqui,como sortear um vetor de caracter em c?
Explicando melhor:
Eu preciso pegar 10 palavras do usuario(usando um vetor),e depois o programa deve sortear uma,para ser usada.Eu pensei nisso:

....
char palavra[11],palavra2;

srand (time(NULL));

for(j=0; j<10; j++){
printf ("Digite a palavra: ");
gets(palavra);
}
k = rand()%10;
palavra2 = palavra[k];
....

Porém não deu certo.Tem algo de errado ai?Ou deve fazer de outra forma?

Obrigado desde já....




Responder tópico

2. Re: Sortear um vetor de caracter em C

Enviado em 25/06/2011 - 18:58h

Opa,

Qual o problema que está ocorrendo?
Pelo enunciado, é pedido, que se coloque tudo em um vetor, contudo isso não é feito. Durante a leitura, somente é lido, o passado não é gravado. Além disso, evite usar a função gets, prefira funções mais seguras, como por exemplo, fgets.
Outra coisa, quando tu pega o resultado do rand, e indexa ele, vai ser retornado somente um caracter e não uma palavra como eu havia dito, pois, as palavras não estão em um vetor, elas estão sendo somente lidas, uma a uma, e não armazenadas.

Abraços e qualquer dúvida, posta aí,

3. Re: Sortear um vetor de caracter em C

Enviado em 25/06/2011 - 19:10h

Hum,entendi e como eu faço pra pegar as palavras que o usuario digitou e armazená-las no vetor?

Eu conheço gets ou scanf("[^\n]",&variavel) pra pegar a palavra digitada com os espaços,mas dei uma lida sobre fgtes,realmente ela é mais segura,afinal ela não "estoura o buffer".



4. Re: Sortear um vetor de caracter em C

Enviado em 25/06/2011 - 19:10h

se você nao conseguir de outra forma, pode adaptar essa função sorteio() ao seu programa.

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

void sorteio() {
char palavras[10][20];
int i;

for(i=0; i<10; i++) {
printf("Palavra %d: ", i);
scanf ("%s", palavras[i]);
}

srand(time(NULL));
i = rand()%10;

printf("%s\n", palavras[i]);
}

int main() {

sorteio();

return 0;
}

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder