先计算有多少整数个长度为8的字符串,将它们依次放入一个容器里,在利用原来字符串长度求余8,看看最后剩下多少个小于8的字符串,依次后面补0即可。

#include<bits/stdc++.h>
using namespace std;
int str_fun(string str){
    int size = str.size();
    if(size>0 && size<8){
        for(int i=0; i<8-size; i++){
            str += '0';
        }
        cout << str << endl;
    }
    else if(size==8){
        cout << str << endl;
    }
    else if(size>8){
        int cnt = 0;
        int n = size/8;
        int m = size%8;
        for(int i=0; i<n; i++){
            cnt = i*8;
            string s="";
            for(int i=cnt; i<cnt+8; i++){
                s += str[i];
            }
            cout << s << endl;
        }
        if(m!=0){    //如果后面有长度小于8的字符串
        string s2="";
        for(int i=size-m; i<size; i++){
            s2 += str[i];
        }
        for(int i=0; i<8-m; i++){
            s2 += '0';
        }
        cout << s2 << endl;
      }
    }
}
int main(){
    string s1,s2;
    getline(cin,s1);
    str_fun(s1);
    getline(cin,s2);
    str_fun(s2);
    return 0;
}