"La mémoire de l'ordinateur conserve toutes les données sous forme numérique. Il n'existe pas de méthode pour stocker directement les caractères. Chaque caractère possède donc son équivalent en code numérique : c'est le code ASCII".
http://www.table-ascii.com/
Tu peux facilement concevoir ton algorithme en te basant sur cette notion et appliquer n'importe quel algorithme de tri en comparant les codes ASCII de tes caractères. Exemple de tri avec la chaîne "cba" :
codeAscii(c) = 99 > codeAscii(b) = 98
--> inverser c et b
--> "bca"
codeAscii(b) = 98 > codeAscii(a) = 97
--> inverser b et a
--> "acb"
codeAscii(c) = 99 > codeAscii(b) = 98
--> inverser c et b
--> "abc"
Ici, l'algorithme appliqué est le plus basique qui puisse être (mais pas le plus efficace), une double boucle :
for(int i = 0; i < longueurChaine; i++)
{
for(int j = i + 1; j < longueurChaine - 1; j++)
{
if(codeAscii(caractere position i) > codeAscii(caractere position j))
{
echanger caractère position i et caractère position j
}
}
}
Tu peux te débrouiller de cette façon, ça devrait être correct.