Ir ao conteúdo

C - Ordenar caracteres de uma string em ordem crescente


shiroyamacah

Posts recomendados

Postado

Eu tenho que salvar em uma string o nome que a pessoa mandar e ordenar as letras de forma crescente.

No meu caso eu deixo todas maiúsculas. E pra ordenar eu pensei em converter letra pra número -> ordenar -> transformar número pra letra.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define QUANT 30

//http://www.cplusplus.com/reference/cstdlib/atoi/
//STRING -> INT
void CharToInt(char string[], int strint[]){
int i;
for(i=0;i<QUANT;i++){
strint[i] = atoi (string[i]);
}
}

//http://www.cplusplus.com/reference/cstdlib/itoa/
//INT -> STRING
void IntToChar(int strint[], char string[]){
int i;
for(i=0;i<QUANT;i++){
itoa (strint[i],string[i],10);
}
}

//Ordena na ordem cresente a string de INT
void Ord(int strint[]){
int i,j,aux;
for(i=0;i<strlen(strint);i++){
for(j=i+1;j<strlen(strint);j++){
if(strint[i]>strint[j]){
aux = strint[i];
strint[i] = strint[j];
strint[j] = aux;
}
}
}
}

main(){
char string[QUANT];
int strint[QUANT];

printf("Escreva o seu nome:\n");
fgets(string,30,stdin);
strupr(string);
printf("Nome: %s\n",string);

CharToInt(string,strint);
Ord(strint);
IntToChar(strint,string);
printf("Nome: %s\n",string);

return(0);
}

Tem algum outro jeito de fazer Char->Int e Int->Char?

Ou um jeito de ordenar o Char direto?

Postado

Simples use string[valor]. Também é bom usar algum algorítimo de classificação de dados

No caso demonstrarei com Bubble Sort, bem simples. Mas pode aplica-l

int main(int argc, char *argv[])
{

char string1 [] = "bruno";

for(int i = 0; string1[i ] ; i++ )
{


for(int j = 0; j < i ; j++)
{

if( (string1[i ]) < (string1[ j]) )
{

string1[ i ] ^= string1[ j];
string1[ j ] ^= string1[ i];
string1[ i ] ^= string1[ j];
}

}

}

printf(string1);
system("PAUSE");
return EXIT_SUCCESS;
}

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!