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

C语言数字用逗号分隔

编程学习2021-10-27101390


正负整数从后向前每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/VB.net 只允许运行一个实例

VB/VB.net 只允许运行一个实例

VB/VB.net  只允许运行一个实例       by:  Apull  VB中的实现方法VB如何防止程序被重复加载,也就是只允许运行一个实例,一般有2种方法。一,直接用VB提供的APP对象的PrevInstance方法。PrevInstance的返回值为True则说明已经有一个实力在运行。If App.PrevInstance Then Msgbox "已经有一个实例在运行" End if这个...

HTML与ASCII码表

HTML与ASCII码表

HTML与ASCII码表Standard ASCII set, HTML Entity names, ISO 10646, ISO 8879, ISO 8859-1  Latin alphabet No. 1Browser support: All browsersASCIIHTMLHTMLDecHexSymbolNumberNameDescription32333435363738394041424344454647202122232425262728292A2B...

6个变态的C语言Hello World程序

6个变态的C语言Hello World程序

下面的六个程序片段主要完成这些事情:输出Hello, World混乱C语言的源代码下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。hello1.c    #define _________ } #define ________ putchar #define _______ main #define _(a) ________(a); #define ______ _______(){ #define...

ASP.NET Session的七点认识

ASP.NET Session的七点认识

  ASP.NET  Session的使用当中我们会遇到很多的问题,那么这里我们来谈下经常出现的一些常用ASP.NET Session的理解:ASP.NET  Session的七点认识之一  对于值类型的变量,Session中保存的是值类型的拷贝Session["__test0"] =1; int i = (int)Session["__test0"]+1; int j = (int)Session["__test0"];  结果i=2,j=1AS...