char *commanize(const char *string)
{
 char *result;
 int i, j, len, ncomma;

 len = strlen(string);
 ncomma = (len - 1) / 3;
 result = malloc(len + ncomma + 1);
 if (!result) return NULL;

 for (i=1,j=1; i<=len; i++,j++) {
  result[len + ncomma - j] = string[len - i];
  if (i % 3 == 0) {
   j++;
   result[len + ncomma - j] = ',';
  }
 }

 result[len + ncomma] = '\0';
 return result;
}