如何用C语言格式化从11234567891,123,456,789的数字?
我尝试使用printf("%'10d\n", 1123456789);,但这不起作用。

你能建议什么吗?解决方案越简单越好。

最佳答案

如果您的printf支持'标志(这是POSIX 2008 printf() 的要求),则可以仅通过适当地设置区域设置就可以做到这一点。例:

#include <stdio.h>
#include <locale.h>

int main(void)
{
    setlocale(LC_NUMERIC, "");
    printf("%'d\n", 1123456789);
    return 0;
}

并运行:
$ ./example
1,123,456,789

在Mac OS X和Linux(Ubuntu 10.10)上进行了测试。

08-06 19:39