华为C++在线测试题(字符串隔断)
题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
示例1
输入
abc
123456789
输出
复制
abc00000
12345678
90000000
代码如下:
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int nNum = 0;
for (int i = 0; i < 2; i++)
{
char szStr[100] = {0};
string strName;
cin>>szStr;
int nLen = strlen(szStr);
if (nLen == 0)
{
return 0;
}
else if (nLen < 8)
{
strName = szStr;
for (int i = 0; i < 8 -nLen; i++)
{
strName += "0";
}
cout<<strName<<endl;
}
else if (nLen > 8)
{
int nIndex = nLen / 8;
int nNum = nLen % 8;
strName = szStr;
for (int i = 0; i < nIndex; i++)
{
string strSub = strName.substr(8*i, 8);
cout<<strSub<<endl;
}
if (nNum > 0)
{
string strSub = strName.substr(8*nIndex, nLen);
for (int i = 0; i < 8 -nNum; i++)
{
strSub += "0";
}
cout<<strSub<<endl;
}
}
}
return 0;
}
已通过牛客的测试