Day28 算法题-42题:字符串分割

76 阅读1分钟

题目描述:

  • 输入一个字符串,请按长度为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;
}

输出结果:

屏幕截图 2023-03-29 223606.png

屏幕截图 2023-03-29 223557.png