字符数组求解 (新了解的知识 )

img

八仙过海,各显神通!!!!求指导解答一下!

#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