galera tenho esse código aqui (só coloquei o importante)
#include <stdio.h>#include <stdlib.h>#include <string.h>//necessário para operacoes com stringint 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çãovoid 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 continuarbreak;}}if (continua == 0) {//se não encontrar nenhum, sai com erroprintf("\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....)
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....