先计算有多少整数个长度为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; }