#include <stdio.h>
#include <string.h> //Arquivo com o protótipo de strcmp() e strlwr().
#define MAX 6 //Constante com o número de elementos do vetor.
#define FALSE -1 //Constante para emular o tipo lógico. Não pode ser 0 pois é um posição de vetor.
//Definição do tipo de usuário Lista.
typedef struct T_lista {
char nome[255];
char telefone[10];
}Lista;
//Função para consultar na lista.
int consulta(Lista *ptr, char *nome);
int main(void) {
char nome[255];
int indice;
//Vetor de tipo composto sendo inicializado.
Lista lista[] = {"Fulano","334-45566","Cicrano","112-23344","Beltrano","551-12233",
"Zé","443-34422","Toinho","661-12233","Luizinho","776-65577"};
printf("Digite o nome:");scanf("%s",nome);
strlwr(nome);
system("cls");
//Índice não poderia assumir o valor zero pois é uma posição válida.
indice = consulta(lista,nome);
if(indice != FALSE){
printf("O numero de %s e %s. \n\n",lista[indice].nome,lista[indice].telefone);
}
else
printf("%s nao consta na lista! \n\n",nome);
system("PAUSE");
return 0;
}
int consulta(Lista *ptr, char *nome) {
int i;
for (i = 0; i < MAX; i++) {
//strcmp retorna zro caso as strings sejam.
if (!strcmp(strlwr(ptr[i].nome),nome)) //A função strlwr converte para minúsculo.
return i; //Retorna índice do elemento.
}
//Se não encontrar retorna falso.
return FALSE;
}