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

C语言数字用逗号分隔

编程学习2021-10-2789620


正负整数从后向前每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++技术
分享给朋友:

相关文章

代码迷惑技术如何保护Java免遭逆向工程

代码迷惑技术如何保护Java免遭逆向工程

很少有问题比程序员遇到不访问无法利用的源代码就无法解决的漏洞更令人沮丧的了。你是否在通过一个在线开源库修补代码,或正在调用常用操作系统例行程序;你可能每周都要花时间处理不是由你编写,因而也无法访问其源代码的代码。因为Java字节码包含许多和原始代码相同的信息,所以很容易对Java类文件执行逆向工程。另外,Java程度以其“一旦编写,随处运行”特性而闻名。虽然并非Java语言的专利,但代码反编译从未在Java开发者之中得到如此公开或普遍地利用。反编译的对...

在ASP中访问和更新Cookies集合

在ASP中访问和更新Cookies集合

  Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要复杂得多。Cookie是一小块由浏览器存贮在客户端系统上的文本,且随同每次请求发往它们应用于的域中的服务器。  ASP使得应用cookie较为容易,可以从Request对象的Cookies集合中获得所有随同请求发出的cookie值,并可创建或修改cookie,通过Response对象的Cookies集合发回给用户。  Cookie包含可用两种方式构造的信息,单值cookie提供其值给代...

VB.NET关于加密算法

VB.NET关于加密算法

加密将防止数据被查看或修改,并在原本不安全的信道上提供安全的通信信道,它达到以下目的:  保密性:防止用户的标识或数据被读取。  数据完整性:防止数据被更改。  身份验证:确保数据发自特定的一方。  基本概念  1、散列(HASH)函数  散列(HASH)函数H也称哈希函数或杂凑函数等,是典型的多到一的函数,其输入为一可变长x(可以足够的长),输出一固定长的串h(一般为128位、160位,比输入的串短),该串h被称为输入x的Hash值(或称消息摘要Message  ...

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...