字符串分隔

来源:互联网 发布:node网络服务器搭建 编辑:程序博客网 时间:2024/05/21 18:36

题目描述

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


输入描述:

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


输出描述:

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


输入例子:
abc123456789

输出例子:
abc000001234567890000000


解题思路

当输入字符串str的长度超过8时,将str的前8个字符组成的子串存到新字符串数组vec中,并令str为剩余的子串,直到str的长度不超过8为止。


此时,如果str为空串,则什么也不做;否则将str后面补足一定个数的'0',构成长度为8的字符串,然后存到vec中。


代码

#include <iostream>#include <string>#include <vector>using namespace std;void HandleString(string& str, vector<string>& vec); //对字符串进行处理void print(const vector<string>& vec); //输出新字符串数组int main(){    string str1, str2;    cin >> str1 >> str2; //输入两个字符串        vector<string> vec; //存新字符串数组        HandleString(str1, vec); //对str1进行处理    HandleString(str2, vec); //对str2进行处理        print(vec); //输出新字符串数组        return 0;}void HandleString(string& str, vector<string>& vec) //对字符串进行处理{    while (str.size() > 8) //字符串长度超过8    {        vec.push_back(str.substr(0, 8)); //将字符串前8位存到字符串数组        str = str.substr(8, str.size() - 8); //剩余部分    }        if (!str.empty()) //若剩余部分非空    {        str.append(8 - str.size(), '0'); //将剩余部分补0        vec.push_back(str); //存到字符串数组    }}void print(const vector<string>& vec) //输出新字符串数组{    for (int i = 0; i < vec.size(); ++i)        cout << vec[i] << endl;    }