题目描述
连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
方法1:
每次读取s前8个字符,然后其余部分重新复制给s,当小于等于8时结束(设标志flag=true)。
int main(){
string s;
while(cin>>s)
{
bool flag=false;//标志是否结束
while(!flag)
{
int len=s.length();
if(len<8){
cout<<s.append(8-len,'0')<<endl;//追加 str.append(个数,字符)
flag=true;}
else if(len==8){
cout<<s<<endl;
flag=true;}
else{
cout<<s.substr(0,8)<<endl;//截取 str.substr(开始,个数)
s=s.substr(8);}
}
}
return 0;
}方法2:
大于8时截断+重新赋值,直到不满足时说明<=8,resize解决。
while(cin>>s)
{
while(s.length()>8)
{
cout<<s.substr(0,8)<<endl;
s=s.substr(8);
}
s.resize(8,'0');//str.resize(长度,不满足时的填充字符)
cout<<s<<endl;
}resize() 调整字符串的大小。如果字符串长度变小,多余的字符会被截掉。若长度变大,可以设置填充的字符。

京公网安备 11010502036488号