题目描述
- 连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
- 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入多次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
示例1
abc
123456789
输出
abc00000
12345678
90000000
思路
- 首先确认一点,多行输入,所以每一行是一个流程(一轮循环)
- 模仿字符流的形式,每8个字符输出为一行
- 则行内应该有计数器,每输出8个字符重置一次
- 到达最后一行但是不满一行的情况根据计数器补0
import sys
for line in sys.stdin.readlines():
len_str=len(line)-1
counter=0
pre_str=''
for i in range(0,len_str):
#print(str(i)+':')
if counter<8:
if i==len_str-1:
pre_str+=line[i]
pre_str+='0'*(8-counter-1)
print(pre_str)
break
else:pre_str+=line[i]
counter+=1
if counter==8:
print(pre_str)
counter=0
pre_str=''
- 另一种思路就是正常的字符串分割
import sys
for line in sys.stdin.readlines():
line=line.replace('\n','')
len_str=len(line)
if len_str>8:
num_row=int(len_str/8)
if(len_str%8!=0):num_row+=1
for i in range(0,num_row):
if(8*(i+1)<=len_str):
print(line[i*8:(i+1)*8])
else : print(str(line[i*8:len_str])+str('0'*(8-len_str%8)))
else:print(str(line)+('0'*(8-len_str)))