gpt4 book ai didi

输出中的逗号分隔

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:36 25 4
gpt4 key购买 nike

如何在输入中给出的数字的数字之间使用逗号,例如 1000,10000,100000,1000000 并将数字的数字分隔开,例如1,00010,000100,0001,000,000 作为输出

C 中是否有任何函数(库)可以为此编写程序?

最佳答案

使用非标准的 ' 打印标志和设置语言环境:

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

int main()
{
int value = 1234567;

if (!setlocale(LC_ALL, "en_US.UTF-8")) {
fprintf(stderr, "Locale not found.\n");
return 1;
}

printf("%'d\n", value);
return 0;
}

但是使用 x mod 3Duff's device 你可以构建你自己的(可移植的)函数:

#include <stdio.h>
#include <stdlib.h>

char *thousand_sep(long x)
{
char s[64], *p = s, *q, *r;
int len;

len = sprintf(p, "%ld", x);
q = r = malloc(len + (len / 3) + 1);
if (r == NULL) return NULL;
if (*p == '-') {
*q++ = *p++;
len--;
}
switch (len % 3) {
do {
*q++ = ',';
case 0: *q++ = *p++;
case 2: *q++ = *p++;
case 1: *q++ = *p++;
} while (*p);
}
*q = '\0';
return r;
}

int main(void)
{
char *s = thousand_sep(1234567);

printf("%s\n", s);
free(s);
return 0;
}

输出:

1,234,567

编辑:

if i wish to make the same in java then??

抱歉,我不懂 Java,也许有用(在使用正则表达式的 javascript 中):

Number.prototype.thousand_sep = function(decs){
var n = this.toFixed(decs).toString().split('.');

n[0] = n[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
return n.join('.');
};
...
var x = 1234567;
alert(x.thousand_sep(0));

关于输出中的逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24628645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com