题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
示例1
输入
abc 123456789
输出
abc00000 12345678 90000000
算法实现
实现1
//思路1:判断长度是否是8的倍数,之后不断截取前8位子串
#include <iostream>
#include <string>
using namespace std;
int main(int argc, const char * argv[]) {
string str;
while(cin>>str){
if(str.size()%8!=0)
str+="00000000";
while(str.size()>=8){
cout<<str.substr(0,8)<<endl;
str=str.substr(8);
}
}
return 0;
}
小结
字符串的操作尽量使用字符串的库函数来做,比如截取子串。
此外,末尾补0的思路非常巧妙:
若字符串长度不是8的倍数,加8个0,从前往后不断截取,当剩下的子串长度不足8位时,肯定都是0。