/* ------------------------------------------------------------------------ Funcao removeFilme Questiona o usuario sobre as caracteristicas do filme. Procura se ele existe e, em caso negativo, o adiciona ao fim da lista. */ void removeFilme(Lista *lista) { /** VARIÁVEIS *****************************************************/ Filme *aux; /* Auxiliar para percorrer a lista */ char *nome_procurado; /* Filme buscado pelo usuário */ char *caracterAtual; /* Auxiliar para contar 'tNome' */ char opcao[3]; /* Identifica o filme encontrado */ int tNome; /* Auxiliar para tamanho do nome da função auxiliar 'achaPalavra' */ nome_procurado = (char *) mallocSafe((TAMNOME+1)*sizeof(char)); aux = lista->ini; /** INFORMAÇÕES DO FILME PROCURADO ********************************/ printf("Digite parte do nome a ser procurado: "); leString(nome_procurado, TAMNOME+1); for(caracterAtual = nome_procurado, tNome = 0; *caracterAtual != '\0'; tNome++, caracterAtual++); /** LISTA VAZIA ***************************************************/ if(lista->ini == NULL) { printf("A lista esta vazia!"); return; } /** BUSCA DO FILME ************************************************/ for(aux = lista->ini; aux != lista->fim->prox; aux = aux->prox) { if(achaPalavra((unsigned char *) nome_procurado, tNome, (unsigned char *) aux->nome, TAMNOME) == TRUE) { mostraUmFilme(aux); printf("Esse eh o filme procurado? [s/n] "); leString(opcao, 3); if(!strcmp(opcao, "s")) { if(aux->prox != NULL) aux->prox->ant = aux->ant; else lista->fim = aux->ant; if(aux->ant != NULL) aux->ant->prox = aux->prox; else lista->ini = aux->prox; free(nome_procurado); free(aux); nome_procurado = NULL; aux = NULL; return; } } } if(aux == lista->fim->prox) printf("\n\nFilme nao encontrado\n"); /** LIBERAÇÃO DE MEMÓRIA ******************************************/ free(nome_procurado); nome_procurado = NULL; aux = NULL; }
int main(int argc, char *argv[]) { char *string; string = leString(); print(string); free(string); return 0; }
/* ------------------------------------------------------------------------ Funcao adicionaFilme Questiona o usuario sobre as caracteristicas do filme. Procura se ele existe e, em caso negativo, o adiciona ao fim da lista. */ void adicionaFilme(Lista *lista) { /** VARIÁVEIS *****************************************************/ Filme *novo; /* Apontador para o novo filme que será criado */ char *nome; char *dist; int votos; float nota; int ano; nome = (char *) mallocSafe(sizeof(TAMNOME+1)); dist = (char *) mallocSafe(11*sizeof(char)); /** INFORMAÇÕES DO FILME ******************************************/ printf("Digite o nome do filme: "); leString(nome, TAMNOME+1); printf("Digite o ano: "); scanf("%d", &ano); printf("Digite a nota: "); scanf("%f", ¬a); printf("Digite o numero de votos: "); scanf("%d", &votos); printf("Digite a distribuicao: "); leString(dist, 11); /** INSERÇÃO ******************************************************/ novo = criaFilme(dist, votos, nota, nome, ano); /* Filmes repetidos não são inseridos */ if(achaFilme(lista, novo) == TRUE) { free(novo); novo = NULL; return; } /* Coloca o filme não-listado no final */ insereFilme(lista, novo); mostraUmFilme(novo); /** LIBERAÇÃO DE VARIÁVEIS ****************************************/ nome = NULL; dist = NULL; novo = NULL; }
int main(){ int n, i; scanf("%d ", &n); for(i = 1; i <= n; i++){ leString(); } return 0; }