首页 > 试题广场 >

字符串分隔

[编程题]字符串分隔
  • 热度指数:1237551 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的由小写字母和数字混合构成的字符串 s ,你需要按每 8 个字符换一行的方式书写它,具体地:
\hspace{23pt}\bullet\,书写前 8 个字符,换行;
\hspace{23pt}\bullet\,书写接下来的 8 个字符,换行;
\hspace{23pt}\bullet\,……
\hspace{23pt}\bullet\,重复上述过程,直到字符串被完全书写。
\hspace{15pt}特别地,如果最后一行不满 8 个字符,则需要在字符串末尾补充 0 ,直到长度为 8

输入描述:
\hspace{15pt}在一行上输入一个长度 1 \leqq {\rm length}(s) \leqq 100 ,由小写字母和数字混合构成的字符串 s


输出描述:
\hspace{15pt}输出若干行,每行输出 8 个字符,代表按题意书写的结果。
示例1

输入

hellonowcoder

输出

hellonow
coder000

说明

\hspace{15pt}在这个样例中,字符串长度为 13 ,因此需要在第二行末尾补充 30
示例2

输入

0

输出

00000000

有些繁琐,我的方法是字符串转列表,用列表来控制输出,再把输出的列表转字符串

import sys

s = input() # 接收输入的字符串
length = len(s)
s_add = '0' * (8 - length%8)
if(length % 8 != 0):
    length = length + (8-length % 8)

count = int(length/8)

new_s = s + s_add
s_lst = list(new_s) # 待输出字符串转列表

for i in range(0, count):
    s_print = s_lst[0:8] # 待输出的列表
    str_print = ''.join(map(str, s_print)) # 待输出列表转字符串
    print(str_print)
    del s_lst[0:8] # 删除列表中已经输出的前八个元素
发表于 2025-03-21 18:36:42 回复(0)
word = input()
a = 0
while a < len(word):
    while a + 8 > len(word):
        word += "0"
    print(word[a:a+8])
    a = a + 8
发表于 2025-03-03 11:50:12 回复(0)
a = input()
while len(a) % 8 != 0:
    a +='0'
for i in range(0,len(a),8):
    print(a[i:i+8])

发表于 2025-02-25 10:06:07 回复(0)
本题的核心需求是将用户输入的字符串按每 8 个字符一组进行处理并输出。为了实现这个目标,我们可以采用以下步骤:

  1. 持续接收输入:使用一个无限循环不断等待用户输入,直到出现异常(例如用户手动终止输入)时停止循环。
  2. 处理输入字符串
    • 长度小于 8:如果输入字符串的长度不足 8 个字符,在字符串末尾填充足够数量的0,使其长度达到 8 个字符后输出。
    • 长度等于 8:若输入字符串的长度恰好为 8 个字符,直接输出该字符串。
    • 长度大于 8:当输入字符串的长度超过 8 个字符时,将其分割成多个长度为 8 的子字符串依次输出。最后,如果剩余部分的长度不足 8 个字符,同样在末尾填充0后输出。
# 使用无限循环持续接收用户输入
while True:
    try:
        # 读取用户输入的字符串
        input_str = str(input())
        # 获取输入字符串的长度
        str_length = len(input_str)

        # 情况 1:输入字符串长度小于 8
        if str_length < 8:
            # 计算需要补充的 0 的数量
            padding_count = 8 - str_length
            # 在字符串末尾补充相应数量的 0 并输出
            print(input_str + padding_count * "0")
        # 情况 2:输入字符串长度等于 8
        elif str_length == 8:
            # 直接输出输入的字符串
            print(input_str)
        # 情况 3:输入字符串长度大于 8
        elif str_length > 8:
            # 计算输入字符串能完整分割成 8 字符子字符串的组数
            int_part = str_length // 8
            # 计算分割后剩余的字符数量
            rest_part = str_length % 8
            # 遍历完整的 8 字符子字符串组
            for i in range(int_part):
                # 提取第 i 组 8 字符子字符串并输出
                print(input_str[i * 8 : (i + 1) * 8])
            # 如果有剩余字符
            if rest_part != 0:
                # 提取剩余字符
                remaining_str = input_str[-rest_part:]
                # 计算剩余字符需要补充的 0 的数量
                padding_count = 8 - rest_part
                # 在剩余字符末尾补充相应数量的 0 并输出
                print(remaining_str + padding_count * "0")
    # 捕获异常,当出现异常时(如用户手动终止输入)跳出循环
    except:
        break



发表于 2025-02-19 20:50:41 回复(0)
n = input()
while len(n) > 8:
    a = n[:8]
    print(a)
    n = n[8:]
n = n + (8 - len(n))*"0"
print(n)
发表于 2025-02-14 19:17:58 回复(0)
s = input()
i = 0
lenth = len(s)
m = lenth % 8

for v in s:
    print(v,end = "")
    i += 1
    if i % 8 == 0:
        print()
if m != 0:
    for j in range(0,8-m):
        print(0,end="")    
发表于 2025-02-13 19:47:55 回复(0)
n = input()
while len(n)>8:
    a = n[0:8]
    print(a)
    n=n[8:]
n = n+(8-len(n))*'0'
print(n)
发表于 2025-01-17 16:47:34 回复(0)
import sys

s = sys.stdin.readline().strip()

remainder = len(s) % 8
if remainder != 0:
    s += '0' * (8 - remainder)  

for i in range(0, len(s), 8):
    print(s[i:i+8])  

发表于 2024-12-27 14:27:34 回复(0)

s = input()
for i in range(0, len(s), 8):
    print(s[i: i + 8].ljust(8, '0'))


发表于 2024-12-23 17:25:36 回复(0)
s = input()
while len(s) > 8:
    print(s[:8])
    s = s[8:]
print(s,end='')
if len(s) < 8:
    s1 = 8 - len(s) % 8
    i = 0
    while i < s1:
        print(0, end='')
        i += 1


发表于 2024-12-17 12:39:04 回复(0)
s = input()
while len(s) > 8:
    print(s[:8])
    s = s[8:]
if s:
    print(s.ljust(8,'0'))
发表于 2024-12-12 14:24:59 回复(0)
a=input()
b=a.split(" ")
while len(b)>0 and len(b)%8 != 0:
    b.append("0")
c=("").join(b)
d=len(c)//8
for i in range(0,d):
    if i==0:
        print(c[0:8])
    else:
        print(c[i * 8: (i+1) * 8 ])
发表于 2024-12-05 13:45:01 回复(0)
strr = input()

if len(strr) < 8:
    print(strr + '0'*(8-len(strr)))

elif len(strr) >= 8 and len(strr)%8 == 0:
    a = int(len(strr)/8)
    for i in range(a):
        print(strr[i*8:(i+1)*8])

elif len(strr) >= 8 and len(strr)%8 != 0:
    a = int(len(strr)/8)
    for i in range(a):
        print(strr[i*8:(i+1)*8])
    print(strr[a*8:len(strr)] + '0'*(8-len(strr[a*8:len(strr)])))
发表于 2024-11-23 22:32:52 回复(0)
str_=input()
if len(str_)%8 !=0:
    str_+='0'*(8-len(str_)%8)
for i in range(len(str_)//8):
    print(str_[8*i:8*(i+1)])

发表于 2024-10-25 20:07:28 回复(2)
a = input()
b = []
c =len(a)%8
if c == 0:
    for i in range(0,len(a),8):
        b.append(a[i:i+8])
else:
    a = a + '0'*(8-c)
    for m in range(0,len(a),8):
        b.append(a[m:m+8])
for word in b:
    print(word)
发表于 2024-10-18 15:45:04 回复(0)
str_in = input()
str_len = len(str_in)
aa = str_len // 8
bb = str_len % 8
if str_len>0:
if bb>0:
str_new = str_in+'0'*(8-bb)
aa += 1
else:
str_new = str_in
for ii in range(aa):
print(str_new[ii*8:(ii+1)*8])
发表于 2024-10-15 16:13:42 回复(0)
import sys

s = input()
if len(s) % 8 != 0:
    s += '0'*( 8 - len(s) % 8)

for i in range(len(s) // 8):
    print(s[8 * i:8 * i + 8],sep='')

发表于 2024-09-18 21:33:04 回复(0)
s = input()
l = []
if len(s)%8 != 0:
    s += '0'*(8-len(s)%8)

for i in range(0,len(s),8):
    print(s[i:1+8],sep=' ')
发表于 2024-09-11 16:43:47 回复(0)
# 读取输入
string = input()

import math
max_n = math.ceil(len(string)/8)
string = string.ljust(max_n*8,'0')  # 求最大商并向上取整,以获得补位数

start = 0
for n in range(8,len(string)+1,8):
    print(string[start:n])
    start = n
发表于 2024-09-01 14:22:02 回复(0)
aa = input()
b = len(aa)
c = b//8
if c == 0:
    print(aa + (8-b) * "0")
else:
    for i in range(c):
        print(aa[i:i+8])
    if b % 8 != 0:
        print(aa[c*8:b] + (8-b%8)*"0")
发表于 2024-08-25 02:52:23 回复(0)

问题信息

难度:
155条回答 139777浏览

热门推荐

通过挑战的用户

查看代码
字符串分隔