Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*CABEÇALHO
- Arquivo: LISTA 11 - Exercício 02.c
- Objetivo: Através de uma lista encadeada, armazene todos os registros na memória do computador.
- Autor(a): RAMON BORGES SALES, PAULO VICTOR DA SILVA RIBEIRO, RENATO HUDSON DE OLIVEIRA JUNIOR.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct Tipo_registro
- {
- char nome[100];
- long int codigo;
- }registro;
- typedef struct Tipo_NO
- {
- registro info;
- struct Tipo_NO *prox;
- }NO;
- //PROTÓTIPO DE FUNÇÕES
- void lerArquivo(NO *cadastros);
- NO *aloca();
- void capturaLetras(char caractere[]);
- int main()
- {
- int cont;
- int posicao;
- NO *listaRegistros;
- NO *p;
- listaRegistros->prox = NULL;
- lerArquivo(listaRegistros);
- printf("Informe o codigo (1111111 à 9999999) referente a um nome: ");
- scanf("%d", &posicao);
- posicao -= posicao - 1111111;
- for(cont = 1, p = listaRegistros; ; p = p->prox, cont++)
- {
- if(cont == posicao)
- {
- printf("%d - %s", listaRegistros->info.codigo, listaRegistros->info.nome);
- break;
- }
- }
- return 0;
- }
- void lerArquivo(NO *cabeca)
- {
- int i = 0;
- long int numeros;
- char aux[30], *resul, nomes[30];
- FILE *fp;
- NO *auxiliar, *novo;
- auxiliar = cabeca;
- fp = fopen("registros.txt", "r");
- resul = fgets(aux, 30, fp);
- while (resul!= NULL)
- {
- numeros = atoi(aux);
- aux+9;
- capturaLetras(aux);
- strcpy(nomes, aux);
- while(auxiliar->prox != NULL)
- auxiliar = (auxiliar->prox);
- novo = aloca();
- novo->info.codigo = numeros;
- strcpy(novo->info.nome, nomes);
- auxiliar->prox = novo;
- novo->prox = NULL;
- resul = fgets(aux, 30, fp);
- if(i > 0)
- novo = novo->prox;
- i = 1;
- }
- return;
- }
- NO *aloca()
- {
- return malloc (sizeof(NO));
- }
- void capturaLetras(char caractere[])
- {
- int i = 0, j = 0;
- char *novaPalavra;
- novaPalavra = (char*)malloc(sizeof(char));
- while(caractere[i] != '\0')
- {
- if(caractere[i] >= 'a' && caractere[i] <= 'z' || caractere[i] >= 'A' && caractere[i] <= 'Z')
- {
- novaPalavra = (char*)realloc(novaPalavra, j+1);
- novaPalavra[j] = caractere[i];
- j++;
- }
- i++;
- }
- strcpy(caractere, novaPalavra);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment