分隔数字 题目描述 在表示一些很长的数字时,为了便于观览,有时会用英文逗号‘,’有规律地插入数字中。 现要求对给定的数字串,从左到右每隔三个数字插入一个英文逗号,直到最后不足三个数字或者到达字符串结尾。 输入 一个字符串,由阿拉伯数字组成,以换行结尾。 输出 用逗号分隔后的字符串。C语言完成
时间: 2024-03-22 14:37:22 浏览: 135
以下是C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char num_str[1000];
scanf("%s", num_str);
int len = strlen(num_str);
if (len <= 3) { // 如果字符串长度小于等于3,则无需插入逗号
printf("%s", num_str);
return 0;
}
int comma_pos = len % 3; // 第一个逗号的位置
if (comma_pos == 0) comma_pos = 3; // 特判
printf("%c", num_str[0]);
for (int i = 1; i < len; i++) {
if (i == comma_pos) { // 插入逗号
printf(",");
comma_pos += 3;
}
printf("%c", num_str[i]);
}
return 0;
}
```
代码思路:
1. 定义一个字符数组 `num_str`,用于存储输入的数字字符串;
2. 使用 `scanf()` 函数读入字符串;
3. 计算字符串的长度 `len`;
4. 如果 `len` 小于等于 3,直接输出字符串并结束程序;
5. 如果 `len` 大于 3,计算第一个逗号的位置 `comma_pos`,如果 `len` 能被 3 整除,则 `comma_pos` 为 3,否则 `comma_pos` 为 `len % 3`;
6. 从字符串的第二个字符开始遍历字符串,如果当前遍历到的位置等于 `comma_pos`,则输出一个逗号,并将 `comma_pos` 加上 3,表示下一个逗号的位置;
7. 输出当前字符;
8. 遍历结束后,程序结束。
阅读全文