题目描述
连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,
长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
首先输入一个整数,为要输入的字符串个数。
例如:
输入:2
abc
12345789
输出:abc00000
12345678
90000000
接口函数设计如下:
/*****************************************************************************
功能:存储输入的字符创
输入:字符串
输出:无
返回:0表示成功,其它返回-1
******************************************************************************/
int AddString(char *strValue);
/****************************************************************************
功能:获取补位后的二维数组的长度
输入:无
输出:无
返回:二维数组长度
*****************************************************************************/
int GetLength();
/*****************************************************************************
功能:将补位后的二维数组,与输入的二维数组做比较
输入:strInput:输入二维数组,iLen:输入的二维数组的长度
输出:无
返回:若相等,返回0;不相等,返回-1.其它:-1;
******************************************************************************/
int ArrCmp(char strInput[][9],int iLen);
输入描述:
首先输入数字n,表示要输入多少个字符串。连续输入字符串(输出次数为N,字符串长度小于100)。
输出描述:
按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
示例1
输入
2 abc 123456789
输出
abc00000 12345678 90000000
C++实现
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
string s;
while (cin >> n)
{
cin.get(); //吸收cin留下的换行符
while (n--)
{
getline(cin, s);
while (s.size()%8!=0)
{
s = s.append("0");
}
while (s.size()/8)
{
cout << s.substr(0,8) << endl;
s = s.substr(8);
}
s.clear();
}
}
return 0;
}
Python实现
while (True):
try:
n = int(input())
for i in range(n):
s = input()
while (s.__len__() % 8 != 0):
s = s + "0"
for j in range(0, s.__len__(), 8):
print(s[j:j + 8])
except:
break
Java实现
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext())
{
int n=scanner.nextInt();
scanner.nextLine();
for(int i=0;i<n;i++)
{
String d=scanner.next();
while(d.length()%8!=0)
{
d=d+"0";
}
for(int j=0;j<d.length();j+=8)
{
System.out.println(d.substring(j, j+8));
}
}
}
}
}