#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;
}
// 创建字符串指针数组
// 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"