#include<stdio.h> #include<stdlib.h> int strlen(char* str); void strrev(char* str); char* commaFormat(char* str); int strlen(char* str){ int i=0; char c=str[i]; while(c!='\0'){ c=str[++i]; } return(i); } void strrev(char* str){ int i,l=0; char c=str[l]; l=strlen(str); l--; for(i=0;i<=l/2;i++){ c=str[i]; str[i]=str[l-i]; str[l-i]=c; } } char* commaFormat(char* str){ int i,j=0,l=strlen(str); char *r = (char*)malloc((l+l/3)*sizeof(char)); strrev(str); for(i=0;i<l;i++){ if(i>0 && i%3==0){ r[j++]=','; } r[j++]=str[i]; } r[j]='\0'; strrev(str); strrev(r); return(r); } main(){ char s[100]; while(scanf("%s",&s)!=-1){ printf("%s\n",commaFormat(s)); } }
Note that non-ascii characters in the above source code will be escaped (such as \x9f).