输入M个字符串,请按指定长度N拆分每个字符串

来源:互联网 发布:科比与詹姆斯数据对比 编辑:程序博客网 时间:2024/05/29 08:10
#include<iostream>
#include<string>
#include<queue>
#include<stdlib.h>
using namespace std;
int main()
{
long int M=0,N=0;
queue<string>q;//定义一个队列
string s;//存储输入的M、N及逗号
string sm=" ";//存储M
string sn=" ";//存储N


cin>>s;//输入M、N

int count=0;
int i=0;
for( i=0;i<s.size();i++)//判断逗号的位置
{
if(s[i]==',')
{


count=i;
break;
}


}

sm=s.substr(0,count);//得到M
sn=s.substr(count+1,s.size()-count);//得到N



for(int j=0;j<sm.size();j++)//把M字符串转层10进制整数
{
if(sm.size()-j>1)
{
M=(M+(sm[j]-'0'))*10;


}
else
{
M+=sm[j]-'0';


}


}


for(int j=0;j<sn.size();j++)//把N字符串转层10进制整数
{
if(sn.size()-j>1)
{
N=(N+(sn[j]-'0'))*10;


}
else
{
N+=sn[j]-'0';


}


}

string s1=" ";
int count_m=0;
while(cin>>s1)//输入M个字符串
{
q.push(s1);//把每个字符串放入队列
count_m++;
if(count_m==M)//输入M个字符串后跳出while循环
{
 break;
}
}




string s2=" ";


int count1=0;



while(!q.empty())
{
s2=q.front();//按输入顺序取出字符串
q.pop();
int len=s2.size();
if(len!=0)
{
int n=0;
int flag=0;
if(len%N!=0)
{
n=N-len%N;//需要补0的个数
flag=1;//是否需要补零
}
for(int i=0;i<len;i++)//输出字符串
{
cout<<s2[i];
count1++;
if(count1==N)
{
count1=0;
cout<<endl;
}
}
if(1==flag)//补零
{
for(i=0;i<n;i++)
{
cout<<'0';
}
}
cout<<endl;

}

count1=0;
}


system("pause");


}
0 0
原创粉丝点击