按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
int M, N;
cout << "M,N: ";
cin >> M >> N;
vector<string> svec;
string sval;
cout << "the string: ";
for(int i = 0; i < M; ++i)
{
cin >> sval;
svec.push_back(sval);
}
vector<string>::iterator iter = svec.begin();
vector<string>::size_type st;
while(iter != svec.end())
{
st = (*iter).size();
int i = 0;
while(st > N)
{
for(int k = 0; k < N; ++k)
{
cout << (*iter)[i*N+k];
}
++i;
st -= N;
cout << ",";
}
int j = 0;
while(j < N)
{
if(j < st)
cout << (*iter)[j+i*N];
else
cout << '0';
++j;
}
cout << ",";
++iter;
}
cout << endl;
return 0;
}