c语言小白,请教大佬问题
想写一个编码,要求是在输入的数字中加入千分位分隔符并输出。小白真的一头雾水,有没有尽量简便的程序呢,请各位大佬帮忙解答一下,万分感谢!

程序代码:
#include <stdio.h>
#include <string.h>
#define LEN 30
//格式化数字为 12,345,678
char *formatnum(char *strbuf, long num)
{
char tmp[LEN] = {0};
size_t len, dou;
sprintf(tmp, "%ld", num); //把数字转换成字符串
len = strlen(tmp);
dou = len + len / 3 - 1; //字符串加逗号之后的长度
if (len % 3 == 0) //原字符串长度刚好是3的倍数,则新字符串长度减一
{
dou--;
}
for (size_t i = 1; i <= len; i++, dou--)
{
strbuf[dou] = tmp[len - i]; //从后往前遍历
if (i % 3 == 0 && dou > 0) //每3个字符添加一个逗号
{
strbuf[--dou] = ',';
}
}
return strbuf; //结果保存到strbuf,并返回这个字符串
}
int main() {
char str[LEN]={0};
printf("%s\n",formatnum(str,12345678)); //2种使用方法,直接输出
printf("%s\n",str); //或者使用字符串变量输出
return 0;
}
[此贴子已经被作者于2021-10-27 21:10编辑过]







