für lange Zeichenketten gibt es eine schnellere Variante:
Code:
#include <string.h>
void sort (char string[]);
int main()
{
char string1[] = "abeejkieecccABEFE21342";
sort(string1);
}
// sort bei längeren Strings
void sort (char string[])
{
static int tabelle[255], akt_char; // static, weil schneller
long i, j, pos, len= strlen(string);
// Initialisierung wegen static notwendig
for(i=0;i<255;i++)
{
tabelle[i] = 0;
}
// sequentiell die Zeichen zählen
for(i=0;i<len;i++)
{
tabelle [string[i]] ++;
}
for(i=0, pos=0;i<255;i++)
{
for (j = 0; j < tabelle[i]; ++j)
{
string[pos++] = (char) i;
}
}
}