#include <stdio.h>
#include <string.h>

#define TRAVOU 'x'

void gets(char *,int, int *);
void split (char *, char *, char, int *); //divide uma string do tipo "ab,cd,yz" em pedaços "ab","cd", "yz"
int pertence (char, char *);
char delta(char, char);

void gets(char *str, int t, int *tamW){
     fgets(str,t,stdin);  //coloca \n e \0 no fim
     *tamW=strlen(str)-1;
     str[*tamW]='\0';
}

void split (char *Q, char *str, char sep, int *tam) //A,B,C,D
{
    int j=0;
    for(i=0;i<*tam;i++){
        if (str[i]!=sep)
            Q[j++]=str[i];
    *tam = j;

}

int pertence (char c, char *Str){ //exemplo: C pertence Q = {A,B,C,D}
    int i;

    for(i=0; Str[i]!='\0'; i++)
        if(c==Str[i])
            return i; //retorna o índice

    return -1;  //retorna uma falha

}

char delta(char q, char c){ //implementar

}


int main()
{
    char W[20], Q[10], A[10], qo, F[10], q, mDelta[10][10];
    char str[30];
    int tamQ, tamF, tamA, tamW, i, j, p=0;
    int Falha = 0;
    printf("Entre com o conjunto de Estados, separados por vígulas: ");
    gets(str,30,&tamQ);
    //Q=str.split(',') em Python
    split(Q, str, ',', &tamQ); //Separa cada estado
    printf("\nEntre os símbolos do alfabeto, separados por vígulas: ");
    gets(str,30,&tamA);
    split(A,str, ',', &tamA);
    printf("\nEntre os estados de F, separados por vígulas: "); // implementar para que não se entre com símbolos que não estejam em Q
    gets(str,30,&tamF);
    split(F,str,',',&tamF);

    //Leitura da matriz Delta
    for (i=0; i<tamQ; i++)
        for(j=0;j<tamA;j++){
            printf("\ndelta(%c, %c) = ",Q[i],A[j]); //delta(A,0)= -
            getc(mDelta[i][j]);}

    printf("\nEntre com a palavra a ser verificada: ");
    gets(W,20,&tamW);
//    q=qo;
//    c=W[p++]; //nextchar()
//    printf("\nSequencia de estados: ");
//    printf("%c, ", q);
//    while (c!='\0') {
//        q=delta(q,c);  //implementar
//        if Travou(q){
//            Falha = 1;
//            break;}
//        c=W[p++];//nextchar()
//        printf(",%c",q)}//proximo q
//
//    if (pertence(q,F)==FALHA || Falha)      //implementar a função pertence
//        printf("\nPalavra não reconhecida ");
//    else printf("Palavra reconhecida ");

}



