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;
}