题目描述:
-
输入一个字符串,请按长度为8拆分为每个输入字符串并进行输出;
-
长度不是8的整数倍的字符串请在后面补数字0,空字符串不做处理
输入描述:
- 连续输入字符串(每个字符串长度小于等于100),空字符串不处理
输出描述:
- 依次输出所有分割后的长度为8的新字符串
示例:
输入:
abc
输出:
abc00000
思路:
从标准输入中读取字符串,并计算字符串的长度和需要补充的位数。然后使用循环遍历每个字符,在每个长度为8的位置处换行并在字符串末尾填充数字0以保证字符串长度为8的整数倍
具体实现:
#include <stdio.h>
#include <string.h>
//分割字符串,每块8个字符
#define MAXSIZE 100
int main() {
char str[MAXSIZE];
printf("Please Input a String:\n");
scanf("%s", str);
int len = strlen(str);
int patch = len%8 == 0 ? 0 : 8-len%8;//用一个补丁补成8的倍数
for (int i = 0; i < len + patch; i++) {
if (i > 0 && i % 8 == 0) //每八个字符用做分割
printf("\n");
if (i >= len) //当超出字符串长度,且不够整除8时补0
printf("0");
else //输出字符
printf("%c", str[i]);
}
return 0;
}