算法打卡day7-字符串分隔

97 阅读1分钟

描述

•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:

连续输入字符串(每个字符串长度小于等于100)

输出描述:

依次输出所有分割后的长度为8的新字符串

示例1

输入:

abc

输出:

abc00000

思路

字符串8个一组,先判断可以分隔为几组字符串,完整的组直接输出,不完整的组补零后输出

具体实现

#include <stdio.h>
#include <string.h>
int main() {
    int i, j, k, n;
    char str[100] = {0};
    gets(str);
    if (strlen(str) % 8 == 0)
        k = 0;
    else
        k = 8 - strlen(str) % 8; //需要补充零的个数
    n = strlen(str) / 8; //组数
    if (str[0] == ' ')
        return 0;
    if (n > 0) {                  //字符串长度大于8时
        for (i = 0; i < n; i++) { //整组输出
            for (j = 0; j < 8; j++)
                printf("%c", str[i * 8 + j]);
            printf("\n");
        }
        for (i = 0; i < strlen(str) - 8 * n; i++) {
            printf("%c", str[8 * n + i]);
        }
        for (i = 0; i < k; i++) {
            printf("0");
        }
    } else {                      //字符串长度小于8时
        for (i = 0; i < strlen(str) - 8 * n; i++) {
            printf("%c", str[8 * n + i]);
        }
        for (i = 0; i < k; i++)
            printf("0");

    }
    return 0;
}

时间复杂度

O(1)