题目描述
•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
题目来源
输入描述
连续输入字符串(每个字符串长度小于等于100)。
输出描述
依次输出所有分割后的长度为8的新字符串
示例
输入:abc
输出:abc00000
思路
首先获取字符串长度,定义一个变量,以8的倍数增长,即把字符串按8的倍数划分为组,对其输出,每组输出完后加换行符,再将最后一组进行判断,若其不满足8的倍数,令其后面补0,本题我用的解法相对暴力。
具体实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i;
char a[100];
gets(a);
int len = strlen(a);
for (i = 0; i < len / 8; i++)
{
for (int k = 8 * i; k < 8 * (i + 1); k++)
{
if (a[k] != 0)
printf("%c", a[k]);
}
printf("\n");
}
if (i == len / 8 && 8 * i < len)
{
int m;
for ( m = 8 * i; m < len; m++)
printf("%c", a[m]);
if (len < 8 * (i + 1))
{
while (m%8!=0)
{
printf("0");
m++;
}
}
printf("\n");
}
}
时间复杂度
O(n)
小结
按部就班慢慢做,思路不算太难。