题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述
输出到长度为8的新字符串数组
示例
输入:
abc
123456789
输出:
abc00000
12345678
90000000
思路
对单个连续字符串分析,按长度为8拆分每个字符串并输入到新的字符串数组中,采用 string 库中 substr() 函数,对于字符串 string input,则 input.substr(0, 8) 表示截取其中索引 0 至索引 7 共 8 个位置的字符;input.substr(8) 表示去除前 8 个字符,即原本索引为 8 的元素移至索引 0 处。
substr() 函数使用:
string input="12345asdf";
string res1=input.substr(0,5); --->res1="12345"
string res2=input.substr(5); --->res2="asdf"
重复以上操作,直到截断后的字符串长度小于 8,此时在该字符串后面补上数字 0,利用 append() 函数。由于题目将输入两次字符串,因此采用函数调用方式。
#include <iostream>
#include <string>
using namespace std;
void stringsplit(string input){
while(input.size()>8){
cout<<input.substr(0,8)<<endl;
input=input.substr(8);
}
cout<<input.append(8-input.size(),'0')<<endl;
}
int main(){
string input1,input2;
getline(cin,input1);
getline(cin,input2);
stringsplit(input1);
stringsplit(input2);
return 0;
}