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

Não ta voltando o valor das variáveis corretas


Junior Ari

Pergunta

galera tenho esse código aqui (só coloquei o importante)


#include <stdio.h>
#include <stdlib.h>
#include <string.h>//necessário para operacoes com string

int i;

char alfabeto[100][10];
int qtdAlfatabeto;
char posTransicao[100][10];

int main() {

strcpy(alfabeto[0], "1");
strcpy(alfabeto[1], "0");
qtdAlfatabeto = 1;


posTransicao[0][0] = '0';
posTransicao[1][0] = '1';
int qtdTrans = 1;


for (i=0;i<=qtdAlfatabeto;i++) {
VerificaErro01(posTransicao[i][0]);
}

}
//função 
void VerificaErro01(char verifica) { 
printf("alfabeto[0] = '%s'\n",alfabeto[0]); 
printf("alfabeto[1] = '%s'\n",alfabeto[1]); 
//verificar o ERRO 01 
//Uso de símbolos que não fazem parte do alfabeto nas transições; 
printf("'%c'\n",verifica); 
int v; 
int continua = 0; 
//verificar se os alfabetos dessa transição fazem parte dos alfabetos digitados  
char carac; 
for (v = 0; v <= qtdAlfatabeto; v++) { 
carac = alfabeto[v]; 
printf("'%c'\n",carac); 
if (carac == verifica) { 
continua = 1; //encontrou, pode continuar 
break; 
} 
} 
if (continua == 0) { 
//se não encontrar nenhum, sai com erro 
printf("\n\nErro 01 ;\n\n"); 
exit(0); 
} 
}
estou fazendo um automato e parei nessa parte, quero verificar se na posicao posTransicao contem a letra do alfabeto contido no vetor alfabeto
ele faz a checagem mas quando chega na linha

carac = alfabeto[v];

na 1. iteração ele atribui a carac um valor nulo, mesmo imprimindo mais em cima alfabeto[0], o valor correto.

Na segunda iteração alem de um espaco, ele ainda coloca uma quebra de linha (muito doido isso....) :blink: :unsure:

como podem ver, as duas letras contem no alfabeto, mas sempre dá o erro que não contém!
alguém que manja de C, pode me dar uma luz.... :( :blush:
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

você tem um array bidmensional guardando sequência de caracteres quando na verdade acredito que você queria guardar somente um char em cada elemento do array (isso julgando somente o que estou vendo, tem que levar em consideração o resto do código). Se for esse o caso, você está alocando memória desnecessariamente.

De qualquer forma seu "carac" é do tipo char e você está tentando atribuir uma sequência a ele. (alfabeto[v] é ponteiro para o primeiro caractere de sequência de 10 char's). Dependendo do compilador, você teria um erro de compilação.

A forma mais rápida de resolver seria alterando alterando essa linha para :

carac = alfabeto[v][0];

Caso ainda não resolva, posta aí que tento te ajudar.

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