空字符串不作处理; 若长度是8的倍数,不用补0; 若长度不是8的倍数,求出补0的个数,把0补上,再8个8个拆分输出。
#include <iostream>
#include <string>
int main(int argc, char* argv[]){
std::string str;
while(std::cin >> str){
const int size = str.size();
if(size == 0){
std::cout << str << std::endl;
continue;
}
int zeros = 0;
if(size % 8){
zeros = 8 - (size % 8);
}
str.append(zeros, '0');
for(int i = 0; i < str.size(); i += 8){
std::cout << str.substr(i, 8) << std::endl;
}
}
return 0;
}