题解 | 添加逗号
添加逗号
https://www.nowcoder.com/practice/f51c317e745649c0900996fd3f683aed
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main() {
//捷径方法
// long long N;
// // 读取输入
// if (scanf("%lld", &N) != 1) {
// printf("输入错误!\n");
// return 1;
// }
// // 设置地区
// setlocale(LC_NUMERIC, "");
// // 分配内存
// char* shuzu = (char*)malloc(30 * sizeof(char));
// if (shuzu == NULL) {
// printf("内存分配失败!\n");
// return 1;
// }
// // 格式化并输出
// sprintf(shuzu, "%'lld", N);
// printf("%s", shuzu);
// // 释放内存
// free(shuzu);
// return 0;
//正常方法
long long N;
scanf("%lld", &N);
char *shuzu = (char *)malloc(30 * sizeof(char));
long long shu = N;
shuzu[29] = '\0';
int i = 28;
int count = 0;
while (shu) {
if (count == 3){
shuzu[i--] = ',';
count = 0;
}
shuzu[i--] = (shu % 10) + '0';
shu /= 10;
count++;
}
for (int z = i + 1; z < 29; z++){
printf("%c", shuzu[z]);
}
}
// 创建字符串指针数组
// char *str_array[size];
// for (int i = 0; i < size; i++) {
// // 为每个数字分配足够的内存
// str_array[i] = malloc(20 * sizeof(char));
// sprintf(str_array[i], "%d", int_array[i]);
// }
// 参数详解
// LC_NUMERIC - 数字类别
// 还有其他类别:
// LC_ALL:所有设置
// LC_CTYPE:字符分类
// LC_TIME:时间格式
// LC_MONETARY:货币格式
// 英语地区(美国)
// c
// setlocale(LC_NUMERIC, "en_US.UTF-8");
// sprintf(str, "%'lld", 1234567890);
// // 输出: "1,234,567,890"(逗号分隔)
// 德语地区
// c
// setlocale(LC_NUMERIC, "de_DE.UTF-8");
// sprintf(str, "%'lld", 1234567890);
// // 可能输出: "1.234.567.890"(点号分隔)
// 法语地区
// c
// setlocale(LC_NUMERIC, "fr_FR.UTF-8");
// sprintf(str, "%'lld", 1234567890);
// // 可能输出: "1 234 567 890"(空格分隔)
// 千位分隔符:%'lld
// 在格式说明符 % 和 lld 之间加上单引号 ',就会启用千位分隔符:
// c
// sprintf(str, "%'lld", 7800000000LL);
// // 输出: "7,800,000,000"
