问题描述:连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
首先输入一个整数,为要输入的字符串个数。
例如:
输入:2
abc
12345789
输出:abc00000
12345678
90000000
问题分析:就是输入n个字符串,利用循环来研究分割每个字符串,没8个字符作为一个串输出,不足8的用零补齐八位再进行输出
特别注意:不要在for循环初始化时定义循环变量,会显示编译错误。
如:for(int i=0;i<100;i++),这种方式在oj平台上会引起编译错误,一定要更改如下:
int i=0;
for(i=0;i<100;i++)
代码:
#include <iostream>
#include <string>
using namespace std;
void split(string &str);
int main()
{
int n,i=0;
cin>>n;
string *str=new string[n];
for(i=0;i<n;i++)
{
cin>>str[i];
}
for(i=0;i<n;i++)
{
split(str[i]);
}
return 0;
}
void split(string &str)
{
int len= str.length();
int m=len/8;
int k=0,i=0;
for(;m>0;--m)
{
for(i=k;i<k+8;++i)
{
cout<<str[i];
}
k=k+8;
cout<<endl;
}//输出含有整8的部分
for(i=k;i<k+8;++i)
{
if(i<len)
cout<<str[i];
else
cout<<0;
}
cout<<endl;
}