当前位置:首页 > 编程学习 > C语言数字用逗号分隔

C语言数字用逗号分隔

编程学习2021-10-2788280


正负整数从后向前每3个数字加逗号“,”分隔。


C语言数字用逗号分隔.jpg C语言数字用逗号分隔  编程 C++ 技术 第1张



#include <stdio.h>
#include <string.h>

#define LEN 30

//格式化数字为 12,345,678
char *formatnum(char *strbuf, long num)
{
    char tmp[LEN] = {0};
    char *p = strbuf;
    size_t len, index = 0;
    
    sprintf(tmp, "%ld", num); //把数字转换成字符串
    
    len = strlen(tmp);
    if ((num >= 0 && len <= 3) || (num < 0 && len <= 4)) //小于3位直接返回
    {
        strcpy(strbuf, tmp);
        return strbuf;
    }
    if (num < 0) //处理负数
    {
        *p = '-';
        p++;
        index = 1;
    }
    for (; index <= len; index++)
    {
        *(p++) = tmp[index];
        if ((len - index + 2) % 3 == 0 && len - index > 3) //每3个字符添加一个逗号
        {
            *(p++) = ',';
        }
    }
    return strbuf; //结果保存到strbuf,并返回这个字符串
}

int main()
{
    long num;
    while (1)
    {
        char str[LEN] = {0};
        scanf("%ld", &num);
        if (num == 0)
            break;
        printf("%s\n", formatnum(str, num)); //2种使用方法,直接输出
        printf("%s\n", str);                 //或者使用字符串变量输出
    }

    return 0;
}



扫描二维码推送至手机访问。

版权声明:本文由海阔天空发布,如需转载请注明出处。

本文链接:https://apull.net/html/20211027225430.html

标签: 编程C++技术
分享给朋友:

相关文章

VB.NET中快速访问注册表技巧

VB.NET中快速访问注册表技巧

vb.net中访问注册表变得非常的简单。我们可以用 microsoft.Win32 名称空间的 下的 registry 类 和  registryKey 类。 另外 My.Computer.Registry 也可以返回一个 Microsoft.Win32.Registry 类的实例。 下面就举几个小例子来说明vb.net访问注册表的方法。1,返回或创建一个注册表键Dim Key1 As Microsoft.Win32.RegistryKey Key1 = My.Compu...

为什么每个程序员都应该学习C语言

为什么每个程序员都应该学习C语言

为什么每个程序员都应该学习C语言 每个程序员在他们的编程生涯中都应该学习C语言,因为它有太多难以忽视的好处了。除了它会给你提供更多的工作机会之外,C语言还会教给你更多的关于计算机的知识。它能给我们提供的裨益,简单列举如下:   1)相比较其他的编程语言(像C++,JAVA),C语言是个低级语言。从总体上来说,低级的编程语言可以让你更好的了解计算机。   2)设备驱动程序和操作系统只能用C语言来编写。现在,你...

C++实现十进制转换为二进制

C++实现十进制转换为二进制

这个写得有些早了,学习c++是写的。现在看到很多帖子问这个问题,把这个贴上来供大家参考下。/* * FileName: bin.cpp * * 转换十进制为二进制 * * Apull * 2005-12-2 */ #include <iostream> #include <cstdlib> using namespace std; const int size = sizeof(int) *...

 C++ string类常用函数

C++ string类常用函数

string类的构造函数:string(const char *s);    //用c字符串s初始化 string(int n,char  c);     //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string  s2="hello";都是正确的写法。...