Buscar

Lista String

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#include <stdio.h>
#define TAMANHO 5
void adicionar(char *valor);
int quantidadeElementos();
char *buscarPorIndice(int indice);
int buscarPorValor(char *valor);
void excluir(char *valor);
void ordenar();
void expandir();
void menu();
int posicao = 0;
char lista[TAMANHO][20];
int opcao;
char texto[20];
int indice;
int main()
{
 opcao = 0;
 while(opcao !=7)
 {
 menu();
 switch(opcao)
 {
 case 1:
 printf("Digite o texto: ");
 scanf("%s", texto);
 adicionar(texto);
 break;
 case 2:
 printf("A lista possui %d elementos.\n", quantidadeElementos());
 break;
 case 3:
 printf("Digite o indice: ");
 scanf("%d", &indice);
 strcpy(texto, buscarPorIndice(indice));
 if(strcmp(texto, "") == 0)
 printf("Indice invalido!\n");
 else
 printf("Valor encontrado no indice %d = %s\n", indice, texto);
 break;
 case 4:
 printf("Digite o texto: ");
 scanf("%s", texto);
 indice = buscarPorValor(texto);
 if(indice == -1)
 printf("Nao encontrei %s na lista!\n", texto);
 else
 printf("Encontrei o texto %s no indice %d\n", texto, indice);
 break;
 case 5:
 printf("Digite o texto para excluir: ");
 scanf("%s", texto);
 excluir(texto);
 break;
 case 6:
 printf("Ordenando...\n");
 ordenar();
 break;
 }
 }
}
void menu()
{
 printf("1 - Adicionar\n");
 printf("2 - Quantidade de Elementos\n");
 printf("3 - Buscar por Indice\n");
 printf("4 - Buscar por Valor\n");
 printf("5 - Excluir\n");
 printf("6 - Ordenar\n");
 printf("7 - Sair\n");
 printf("Digite a sua opcao: ");
 scanf("%d", &opcao);
}
void adicionar(char *valor)
{
 if(posicao < TAMANHO)
 {
 strcpy(lista[posicao], valor);
 posicao++;
 }
 else
 printf("Lista cheia!\n");
}
int quantidadeElementos()
{
 return posicao;
}
char *buscarPorIndice(int indice)
{
 if(indice >= 0 && indice < posicao)
 return lista[indice];
 else
 return "";
}
int buscarPorValor(char *valor)
{
 int i = 0;
 for(i = 0; i < posicao; i++)
 if(strcmp(lista[i], valor) == 0)
 return i;
 return -1;
}
void excluir(char *valor)
{
 int i = 0;
 i = buscarPorValor(valor);
 if(i != -1)
 {
 for(; i < posicao - 1; i++)
 strcpy(lista[i], lista[i + 1]);
 posicao--;
 }
 else
 printf("Nao encontrei %s na lista!\n", valor);
}
void ordenar()
{
 int i = 0;
 int j = 0;
 char aux[20];
 for(i = 0; i < (posicao -1); i++)
 {
 for(j = i + 1; j < posicao; j++)
 {
 if(strcmp(lista[i], lista[j]) > 0)
 {
 strcpy(aux, lista[i]);
 strcpy(lista[i], lista[j]);
 strcpy(lista[j], aux);
 }
 }
 }
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais