Here's a godly sorter that sorts input from 0-255 characters long! The trick is to use strlen() instead of having a set # of input characters.
Code:
#include <stdio.h>
#include <string.h>
int main() {
int j;
int i;
char orig[255];
char temp;
/// Get input
printf("Any characters you want & I shall order them:\n");
fgets(orig, sizeof(orig), stdin);
/// Echo out original
printf("IN: %s\n", orig);
/// Sort
for(i = 0; i < strlen(orig); i++) {
for(j = i; j < strlen(orig); j++) {
if(strcmp(&orig[i],&orig[j])>=0) {
temp = orig[i];
orig[i] = orig[j];
orig[j] = temp;
}
}
}
/// Echo out sorted
printf("\nSorted strings are:\n\n");
for(i = 0; i < strlen(orig); i++) {
if(orig[i] == '\n')
continue;
printf("String[%d] = %c\n", i, orig[i]);
}
return 0;
}
Here's the an example:
Code:
Any characters you want & I shall order them:
987239427347382882
IN: 987239427347382882
Sorted strings are:
String[1] = 2
String[2] = 2
String[3] = 2
String[4] = 2
String[5] = 3
String[6] = 3
String[7] = 3
String[8] = 4
String[9] = 4
String[10] = 7
String[11] = 7
String[12] = 7
String[13] = 8
String[14] = 8
String[15] = 8
String[16] = 8
String[17] = 9
String[18] = 9