// -- Some adjustments for didactic reasons ----------
typedef unsigned long uint64_t; // ok on theseus
int putchar ( int character );
// ---------------------------------------------------
void
bubblesort(char *A, uint64_t n)
{
uint64_t swapped;
do {
swapped = 0;
for (uint64_t i=1; i<n; ++i) {
if (A[i-1] > A[i]) {
char tmp = A[i];
A[i] = A[i-1];
A[i-1] = tmp;
swapped = 1;
}
}
--n;
} while (swapped);
}
void
puts(char *str)
{
while (*str) {
putchar(*str++);
}
putchar('\n');
}
uint64_t
strlen(char *str)
{
char *ch = str;
while (*ch) {
++ch;
}
return ch - str;
}
char msg[] = "hello, world!";
int
main()
{
puts(msg);
bubblesort(msg, strlen(msg));
puts(msg);
}