Sortear um vetor de caracter em C

1. Sortear um vetor de caracter em C

João Paulo dos Santos Ferreira
Jota P.

(usa Debian)

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á....






  


2. Re: Sortear um vetor de caracter em C

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

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

João Paulo dos Santos Ferreira
Jota P.

(usa Debian)

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

Perfil removido
removido

(usa Nenhuma)

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;
}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts