输入一行字符,分别统计出其中英文字母、空格、数字和其他字符个数。(至少编写两个程序,请分别用printf和getchar()两种方式输入字符)

输入一行字符,分别统计出其中英文字母、空格、数字和其他字符个数。(至少编写两个程序,请分别用printf和getchar()两种方式输入字符)

str = input("请输入一个字符串:")
length1 = len(str)
letter = 0
digit = 0
others = 0
print(length1)
i = 0
for each in str:
str1 = str[i]
i += 1
if str1.isalpha():
letter += 1
elif str1.isdigit():
digit += 1
else:
others += 1
print("字母有%d个,数字有%d个,其他字符有%d个" % (letter, digit, others))

请帮忙写出完整程序