#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"