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编辑过]