Aşağıdaki program, karakter dizisi olarak verilen integer bir sayıya binler basamağı ayırıcısı olarak önce nokta sonra virgül karakteri kullanarak ekrana yazar.
#include <stdio.h>
#include <string.h>
char *bg_int_sep(const char* instr, char *outstr, char sep);
int main(void)
{
char cdizi[30];
// Binler basamağı ayırıcı için nokta karakteri kullanma
printf("%s\n", bg_int_sep("2175852146987", cdizi, '.'));
// Binler basamağı ayırıcı için virgül karakteri kullanma
printf("%s", bg_int_sep("2175852146987", cdizi, ','));
return 0;
}
char *bg_int_sep(const char* instr, char *outstr, char sep)
{
int ilen = strlen(instr);
char *ipos = instr;
char *opos = outstr;
while (*ipos) {
if((instr!=ipos) && (((instr+ilen)-ipos)%3==0)) {
*opos++ = sep;
}
*opos++ = *ipos++;
}
*opos = '\0';
return outstr;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
2.175.852.146.987 2,175,852,146,987