牛客网&&华为机试&&字符串分割

本文介绍了一个关于牛客网和华为机试中字符串分割的编程问题及解决方案。通过对输入的两个字符串进行处理,将其按每8个字符一组进行拆分并输出,最后处理剩余不足8位的情况。该问题旨在考察字符串操作能力和循环结构的应用。

牛客网&&华为机试&&字符串分割

在这里插入图片描述
代码实现

#include<iostream>
#include<string>


using std::cin;
using std::cout;
using std::endl;
using std::string;

const int len = 8;

int main()
{
	string str1;
	string str2;
	string str3;
	string temp = "00000000";  //初始化字符串,当有余数的时候就不需要额外补0.
    //char temp[9] = "00000000"; //char类型字符串的初始化
	int len1 = 0;
	int len2 = 0;
	int len3 = 0;
	int index = 0;
	int count = 0;
	int k = 0;
    int remainder = 0;

	getline(cin, str1);
	getline(cin, str2);

	len1 = str1.size();
	len2 = str2.size();

	for (int i = 0; i < 2; i++)
	{
		if (i == 0)
		{ 
			count = len1 / len;
			len3 = len1;
            remainder = len1 % len;
			str3 = str1;
		}

		if (i == 1)
		{
			count = len2 / len;
			len3 = len2;
            remainder = len2 % len;
			str3 = str2;
		}

		temp = "00000000"; //INIT
		for (k = 0; k < count; ++k)
		{
			for (int j = len * k; j < (len * k + 8); ++j)
			{
				temp[index++] = str3[j];
			}
			cout << temp << endl;
			index = 0;
		}

        if( remainder != 0)  //判断是否有未除尽的余数
        {
            temp = "00000000"; //INIT
            for (int i = (len*count); i < len3; i++)
            {
                temp[index++] = str3[i];
            }
            cout << temp << endl;
        }

		index = 0;
	}
	return 0;
}

编程笔记

  • 代码实现解题思路:1.对两次输入的字符串做相同的处理;2.首先获取字符串长度为8的倍数,即循环执行一组8个数据的循环赋值;3.接着判断是否存在余数,不存在则不执行任何语句,存在的话对余数进行处理。
  • 需要注意代码实现一些变量的初始化操作,不可缺少。代码实现难度不高,但是细节需要多注意。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值