八仙过海,各显神通!!!!求指导解答一下!
#include <stdio.h>
int main()
{
char s[1001];
gets(s);
int a=0,b=0,c=0,d=0,e=0,i=0;
while(s[i] != 0)
{
if(s[i] >='a' && s[i]<='z')
a++;
else if(s[i] >='A' && s[i] <='Z')
b++;
else if(s[i] >='0' && s[i] <='9')
c++;
else if(s[i] == ' ')
d++;
else
e++;
}
printf("小写字符%d个,大写字符%d个,数字%d个,空格%d个,其它字符%d个\n",a,b,c,d,e);
}
以下是我用Python实现的代码,没写过C,思路是搭配 字符串和正则 来匹配相应个数,数组存一下就好!
import re;
#根据指定正则返回相应条数
def getRegToCount(reg,str):
try:
match = re.search(f"{reg}",str)
value = match.group(0)
except AttributeError:
return 0
return len(value)
# 我直接一整套QWER输出,他直接麻了,我牛不牛,他df冲我连,被我直接拿下。
text = "我直接一整套QWER输出,他直接麻了,我牛不牛,他df冲我连,被我直接拿下。"
# 大写字母正则
uReg = "[A-Z]+"
lReg = "[a-z]+"
numberReg = "[0-9]+"
#大写字母统计
uCount = getRegToCount(uReg,text)
#小写字母统计
lCount = getRegToCount(lReg,text)
#数字统计
nCount = getRegToCount(numberReg,text);
#空格
spaceCount = text.count(" ")
#其他字符数量 等于减去前面所有数量的综合
scoreCount = (len(text) - uCount - nCount - spaceCount)
#字符
print("字符串中大写的数量:{}".format(uCount))
print("字符串中小写的数量:{}".format(lCount))
print("字符串中数字的数量:{}".format(nCount))
print("字符串中空格的数量:{}".format(spaceCount))
print("字符串中其他字符的数量:{}".format(scoreCount))
结果
字符串中大写的数量:4
字符串中小写的数量:2
字符串中数字的数量:0
字符串中空格的数量:0
字符串中其他字符的数量:34