题目描述
连续输入字符串,请按长度为 8 拆分每个字符串后输出到新的字符串数组;长度不是 8 整数倍的字符串请在后面补数字 0,空字符串不处理。
输入描述
连续输入字符串(输入多次,每个字符串长度小于 100)。
输出描述
依次输出拆分并补 0 后的字符串,每个字符串占一行。
示例
输入:
text
abc
123456789
输出:
text
abc00000
12345678
90000000
C 语言解决方案
思路
对每个读入的字符串:
-
计算长度
len。 -
按每
8个字符为一组输出。 -
若最后一组不足
8个字符,用'0'补齐到8个。
关键点:末尾补 0 时,要保证最终长度是 8 的整数倍。
代码实现
c
#include <stdio.h>
#include <string.h>
int main(void) {
char s[105];
// 多组输入,遇到 EOF 结束
while (scanf("%s", s) != EOF) {
int len = strlen(s);
// 按每 8 个字符一组处理
for (int i = 0; i < len; i += 8) {
// 输出这一组的 8 个字符
for (int j = 0; j < 8; j++) {
if (i + j < len) {
putchar(s[i + j]); // 原字符
} else {
putchar('0'); // 不足补 0
}
}
putchar('\n');
}
}
return 0;
}