comma format by croyal

#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).

download

return to the top page