como visualizar por ordem alfabetica

1. como visualizar por ordem alfabetica

ruth
ruth2

(usa Kurumin)

Enviado em 30/06/2011 - 10:29h

criei um programa em c para cadastrar clientes no arquivo cadastrado.txt,
>>quero exibir por ordem alfabetica os nomes cadastrados como faço
>> printf("\t %-30s \n", c.nome);






  


2. Re: como visualizar por ordem alfabetica

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/07/2011 - 00:27h

de uma forma mais simples, você pode armazenar as strings em um vetor e depois ordená-las, nesse exemplo, foram usadas as funções strcmp() e strcpy().

strcmp() compara duas strings: strcmp(string1, string2);
retorna 0, se string1 for igual a string2
retorna 1, se string1 for maior que string2
retorna -1, se string1 for menor que string2
por isso do trecho if(strcmp(nomes[i], nomes[j]) < 0)

strcpy() copia o valor de uma string para outra: strcpy(string1, string2);
string1 passa a ter o conteúdo de string2

ao final o vetor estara com os nomes ordenados e você poderá imprimir ou armazená-los no arquivo.


#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main() {
char nomes[10][15], aux[15];
int qtde, i, j;

printf("Nº total de nomes: ");
scanf("%d", &qtde);

for(i=0; i<qtde; i++)
scanf("%s", nomes[i]);

for(i=0; i<qtde; i++) {
for(j=0; j<qtde; j++) {
if(strcmp(nomes[i], nomes[j]) < 0) {
strcpy(aux, nomes[i]);
strcpy(nomes[i], nomes[j]);
strcpy(nomes[j], aux);
}
}
}

printf("-nomes ordenados-\n");
for(i=0; i<qtde; i++)
printf("%s\n", nomes[i]);

return 0;
}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts