华为OJ(字符串分隔)

描述

•连续输入字符串,请按长度为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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值