华为机试HJ4:字符串分隔

简介: 华为机试HJ4:字符串分隔

题目描述:

•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:

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

输出描述:

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

示例:

输入:

abc 123456789

输出:

abc00000 12345678 90000000

解题思路:

每输入一个字符串,先计算其字符个数与8的余数,将前面的x个8字符子串输出,再输出剩下的字符,并补充0的个数。

测试代码:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string str;
    int number=0;
    while(cin>>str)
    {
        // left是裁剪后不足8个字符的字符串中字符的个数
        int left=str.size()%8;
        while(str.size()>=8)
        {
            cout<<str.substr(0,8)<<endl;
            str=str.substr(8);
        }
        // 如果为0则说明后面没有多余字符了
        if(left)
        {
            number=8-left;
            str.append(number,'0');
            cout<<str<<endl;
        }
    }
    return 0;
}


相关文章
|
8月前
|
算法
华为机试HJ14:字符串排序
华为机试HJ14:字符串排序
|
8月前
|
人工智能
华为机试HJ26:字符串排序
华为机试HJ26:字符串排序
|
8月前
华为机试HJ106:字符逆序
华为机试HJ106:字符逆序
|
8月前
|
容器
华为机试HJ102:字符统计
华为机试HJ102:字符统计
|
8月前
华为机试HJ96:表示数字
华为机试HJ96:表示数字
|
8月前
华为机试HJ81:字符串字符匹配
华为机试HJ81:字符串字符匹配
|
8月前
|
算法 数据库
华为机试HJ71:字符串通配符
华为机试HJ71:字符串通配符
|
8月前
华为机试HJ59:找出字符串中第一个只出现一次的字符
华为机试HJ59:找出字符串中第一个只出现一次的字符
|
8月前
华为机试HJ1:字符串最后一个单词的长度
华为机试HJ1:字符串最后一个单词的长度
|
8月前
华为机试HJ65:查找两个字符串a,b中的最长公共子串
华为机试HJ65:查找两个字符串a,b中的最长公共子串