华为OJ(字符串分隔)

来源:互联网 发布:淘宝详情页的尺寸 编辑:程序博客网 时间:2024/05/08 19:42

描述

•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

知识点字符串运行时间限制10M内存限制128输入

连续输入字符串(输入2次,每个字符串长度小于100)

输出

输出到长度为8的新字符串数组

样例输入abc 123456789样例输出abc00000 12345678 90000000很奇怪,下面的代码虽然很烂,竟然通过了测试。
#include<iostream>#include<string>using namespace std;int main(){string s1,s2;cin>>s1;cin>>s2;if(s1.size()>0&&s1.size()<8){cout<<s1;for(int i=0;i<8-s1.size();i++)cout<<"0";cout<<endl;}else if(s1.size()>=8){for(int i=0;i<s1.size()/8*8;i++){cout<<s1[i];if((i+1)%8==0)cout<<endl;}for(int i=s1.size()/8*8;i<s1.size();i++)cout<<s1[i];for(int i=0;i<8-s1.size()%8;i++)cout<<"0";}if(s2.size()>0&&s2.size()<8){cout<<endl;cout<<s2;for(int i=0;i<8-s2.size();i++)cout<<"0";}else if(s2.size()>=8){for(int i=0;i<s2.size()/8*8;i++){cout<<s2[i];if((i+1)%8==0)cout<<endl;}for(int i=s2.size()/8*8;i<s2.size();i++)cout<<s2[i];for(int i=0;i<8-s2.size()%8;i++)cout<<"0";}//system("pause");return 0;}

但是我觉得还是有点问题,对空字符串上面的代码不能接收,另外还是用个函数好一点,至少好看一点,虽然也没什么卵用。

#include<iostream>#include<string>using namespace std;const int N=100;int getString(char*);int main(){char s1[N],s2[N];gets(s1);gets(s2);getString(s1);getString(s2);//system("pause");return 0;}int getString(char* pstr){int len=strlen(pstr);if(len==0)return 0;if(len<=8){cout<<pstr;for(int i=0;i<8-len;i++)cout<<"0";}else{for(int i=0;i<len/8*8;i++){cout<<pstr[i];if((i+1)%8==0)cout<<endl;}for(int i=len/8*8;i<len;i++)cout<<pstr[i];for(int i=0;i<8-len%8;i++)cout<<"0";}cout<<endl;return 1;}


0 0