Gerar palavras em C

5 respostas
douglaskd

como eu faço pra gerar palavras em C

a idéia que tenho seria criar palavras de acordo com o alfabeto, cada palavra tem 6 caracteres…:

ex:

AAAAAA
BBBBBB
CCCCC

ZZZZZZ

tentei fazer usando, porém nao foi, alguem tem alguma idéia

for(i=0;i<24;i++){ for(j=0;j<6;i++){ palavra[i][j] = (char) i+65; } palavra[i][j+1] = "/0"; }

5 Respostas

tcarvalho87

Seu erro:
Esta no segundo for

for (i = 0; i &lt; 24; i++) {
            for (j = 0; j &lt; 6; j++) {
                palavra[i][j] = (char) (i + 65);
            }
            palavra[i][j + 1] = '\0';
}
getAdicted

Roda esse programa que você vai ter uma idéia:

#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
int main()
{
  int i=0;
  while(i &lt; 127)
  {
     printf("%c[%d]\n",i,i++);
  }
  system("pause");
}

[]'s

douglaskd

nao funcionou, segue o código completo:

#include <stdio.h>

main(){
       
int i,j;

char palavra[24][6];

for (i = 0; i < 24; i++) {   
            for (j = 0; j < 6; j++) {   
                palavra[i][j] = (char) (i + 65);   
            }   
            palavra[i][j + 1] = '\0';   
}  

for (i = 0; i < 24; i++) {   
            printf("%s\n",palavra[i]);  
}  
system("pause");
}

estranhamente ele guarda varias palavras dentro de palavra[0] e depois repete em palavra[1], deve ser algum problema com essa conversão ou sei la..

jamirdeajr

Creio que o problema esteja aqui:

o certo é

Porque para sair do for j já está com valor 6, se somar 1 vai sobrepor a próxima ‘string’, fazendo com que todas fiquem sem o ‘\0’ no final…
E também para conter 6 caracteres você terá que reservar 7 bytes, sendo o último para o ‘\0’.

douglaskd

era isso mesmo, funcionou certinho vlw..

#include <stdio.h>   
  
main(){   
         
int i,j;   
  
char palavra[26][7];   
  
for (i = 0; i < 26; i++) {     
            for (j = 0; j < 6; j++) {     
                palavra[i][j] = (char) (i + 65);     
            }     
            palavra[i][j] = '\0';     
}     
  
for (i = 0; i < 26; i++) {     
            printf("%s\n",palavra[i]);     
}     
system("pause");   
}
Criado 24 de junho de 2011
Ultima resposta 24 de jun. de 2011
Respostas 5
Participantes 4