编写程序,从键盘任意输入2个字符串,分别存放到变量a、b中,要求统计b变量中的字符串在a变量中出现的次数及对应的所有位置(索引)。

编写程序,从键盘任意输入2个字符串,分别存放到变量a、b中,要求统计b变量中的字符串在a变量中出现的次数及对应的所有位置(索引)。

a = input("请输入字符串 a: ")
b = input("请输入字符串 b: ")

count = 0         # ba 中出现的次数
positions = []    # ba 中出现的位置

for i in range(len(a)-len(b)+1):
    if a[i:i+len(b)] == b:
        count += 1
        positions.append(i)

print("字符串 b 在字符串 a 中出现的次数为:", count)
print("字符串 b 在字符串 a 中出现的位置为:", positions)

下面是用 Python 实现统计子串在字符串中出现位置的代码:

a = input("请输入字符串 a:")
b = input("请输入字符串 b:")

count = 0
indices = []

for i in range(len(a)):
    if a[i:i+len(b)] == b:
        count += 1
        indices.append(i)

print("字符串 b 在字符串 a 中出现了", count, "次")
if count > 0:
    print("字符串 b 在字符串 a 中出现的位置为:", indices)

代码中,首先从用户输入里读取字符串 a 和 b,然后定义了两个变量,count 统计子串 b 在字符串 a 中出现的次数,indices 则是一个列表用来存储子串 b 在字符串 a 中出现的位置索引。

接下来的 for 循环遍历了字符串 a 所有的位置,每次取出 a 中从当前位置开始的子串(长度等于 b 的长度),如果该子串等于 b,就说明在该位置匹配成功了,因此 count 计数器加 1,将该位置的索引添加到 indices 列表中。

最后,如果 count 大于 0,就输出所有匹配成功的位置索引。

运行示例:

请输入字符串 a:abcdefabcghabc
请输入字符串 b:abc
字符串 b 在字符串 a 中出现了 3 次
字符串 b 在字符串 a 中出现的位置为: [0, 6, 11]