Пример #1
0
/*
------------------------------------------------------------------------
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;
}
Пример #2
0
int main(int argc, char *argv[]) {
	char *string;

	string = leString();
	print(string);

	free(string);

	return 0;
}
Пример #3
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", &nota);
        
        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;

}
Пример #4
0
int main(){
	int n, i;

	scanf("%d ", &n);

	for(i = 1; i <= n; i++){
		leString();
	}
	return 0;
}