首页 > 试题广场 >

字符串分隔

[编程题]字符串分隔
  • 热度指数:1257402 时间限制: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
a = input()
lenth = len(a)
if lenth%8 != 0:
    if lenth > 8:
        a += (8-lenth + 8*(lenth//8))*'0'
    if lenth < 8:
        a += (8-lenth)*'0'
for i in range(0,lenth,8):
    print(a[i:i+8])
发表于 2025-07-10 22:06:10 回复(0)
str = input()
list1 = list(str)
l = len(str)
t = 8 - (l % 8)
while t > 0:
   list1.append('0')
   t -= 1

for j in range(0, l, 8):
    print(''.join(list1[j:j+8]))

发表于 2025-07-10 16:27:33 回复(0)
a=input()
length=len(a)
n=length//8
b=0
if length%8!=0:
    b=8-length%8
a=a+"0"*b
# print(a)
if b==0:
    n=n
else:
    n=n+1
for i in range(n):
    print(a[8*i:8*i+8])
# print(n,b,a)
先确认需要补充多少0,后续循环输出


发表于 2025-07-08 18:08:24 回复(0)
a = input()
for i in range(0,len(a),8):
    b = a[i:i+8]
    if len(b) < 8:
        b += '0'*(8-len(b))
    print(b)
菜鸡一个
发表于 2025-07-01 17:19:02 回复(0)
def format_string(s):
    # 补零直到长度是8的倍数
    while len(s) % 8 != 0:
        s += '0'
    # 按每8个字符切片,用换行连接
    result = []
    for i in range(0, len(s), 8):
        result.append(s[i:i+8])
    return '\n'.join(result)

# 交互输入部分
if __name__ == "__main__":
    user_input = input("请输入由小写字母和数字组成的字符串:")
    formatted = format_string(user_input)
    print("\n格式化后的结果:")
    print(formatted)
发表于 2025-06-18 15:22:06 回复(0)
import sys

s = input()
n = len(s) // 8
d = len(s) % 8
for i in range(n):
    print(s[i*8:(i+1)*8])
if d != 0 :
    print(s[n*8:] + "0"*(8-d))
发表于 2025-05-29 16:07:52 回复(0)
s = input()
length = len(s)
index = 0

while True:
    if index + 8 < length:
        print(s[index:index + 8])
        index += 8
    else:
        print(s[index:length] + "0" * (8 - (length - index)))
        break
发表于 2025-05-08 19:12:51 回复(0)
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])

发表于 2025-05-05 11:51:28 回复(0)
s = input()

# Add zeros at the end of the input string if its length is not a multiple of 8:
s_length = len(s)
if s_length%8 == 0:
    pass
else:
    num_zeros = 8 - (s_length%8) # The number of zeros to add is equal to 8 minus the remainder of the length of the input string divided by 8. E.g.: 38%8 = 6 -> Add (8-6)=2 zeros.
    for _ in range(num_zeros):
        s += "0"

for i in range(0, len(s)//8): # Use the floor division because range() only accepts integer inputs.
    print(s[8*i:(8*i+8)], end="\n") # Use end="\n" to print out results line by line.
发表于 2025-04-09 02:40:30 回复(0)

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

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)