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

Duvida Exercício C


Manoel Medeiros

Pergunta

Boa noite,

Pessoal estou com com 2 problemas no código a que me refiro, o primeiro é sobre a ordenação, preciso organizar o vetor que ele resulta em ordem alfabética e o outro e que eu preciso ler a partir de um arquivo txt.

Código a seguir.

Estou online caso possam me ajudar.

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

struct sequencia{
    char *seq;
};


char *subString (char *str, int inicio, int fim) {
    if (fim > strlen (str) || fim < inicio){
        return NULL;
    }

    //char *auxPad = strdup (str);
    char *auxPad = malloc(sizeof(char)*(fim-inicio+2));
    int i;
    for (i = inicio; i <= fim; i++) {
        auxPad [i - inicio] = str[i];
        //printf ("%c", str[i]);
    }
    auxPad[i-inicio] = '';
    return auxPad;
}

void detectaPadrao(char **vetPadrao, char *padrão, int qtd){
    int cont = 0, contVet = 0;
    int achou = 0;
    int qtdPadrao = 0, qtdSequencia = 0, sobra = 0, auxQtdPadrao = 0;
    char* aux;
    char* auxPadrao;
    char* contChar;
    char* auxComparacao;
    //char auxAux[];
    char teste[100];
    for(cont = 0; cont < qtd; cont++){
        achou = 0;
        aux = vetPadrao[cont];
        //auxPadrao = malloc(sizeof(char)* (int) strlen(aux));
        qtdPadrao = strlen(aux);
        qtdSequencia = strlen(padrão);
        auxQtdPadrao = qtdPadrao;
        for(contVet = 0; padrão[contVet] != ''; contVet++){
            sobra = qtdSequencia - (contVet);
            if(sobra < qtdPadrao){
                break;
            }
            auxComparacao = subString (padrão, contVet, (auxQtdPadrao-1));
            if(!strcmp(aux, auxComparacao)){
                if(achou == 0){
                    strcat(teste, aux);
                }
                achou = 1;
                contChar = malloc(sizeof(char)*(int)strlen(contChar));
                itoa(contVet, contChar, 10);
                strcat(teste, " ");
                strcat(teste, contChar);
            }
            auxQtdPadrao+=1;
        }
        strcat(teste, " ");
    }
    printf("%s", teste);
}

int main()
{
    int qtd = 0, cont = 0, tamanho = 0, qtdTotal = 0;
    char *padrão;
    char **vetPadrao;
    //printf("\nEntre com quantidade de padrão: ");
    scanf("%d", &qtd);
    fflush(stdin);
    vetPadrao = malloc(sizeof(char) * qtd );
    for(cont = 0; cont < qtd; cont++){
        //printf("\nEntre com o tamanho do %d padrão:", cont+1);
        scanf("%d", &tamanho);
        fflush(stdin);
        qtdTotal += tamanho + 1;
        padrão = malloc(sizeof(char)* (tamanho + 1));
        if(padrão == NULL){
            printf("\nERRO!");
            exit(-1);
        }
        //printf("\nEntre com o %d padrão:", cont+1);
        scanf("%s", padrão);
        vetPadrao[cont] = padrão;
    }

    //printf("\nEntre com o tamanho da sequencia:");
    scanf("%d", &tamanho);
    padrão = malloc(sizeof(char)*tamanho);
    //printf("\nEntre com a sequencia:", cont+1);
    scanf("%s", padrão);

    detectaPadrao(vetPadrao, padrão, qtd);
    //qsort(p, qtd, sizeof(Pilha), comparaPadrao);
    return 0;
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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