题解 | #统计字符串中各类型字符的个数#

统计字符串中各类型字符的个数

https://www.nowcoder.com/practice/d5b44c494ed24d8ebb10607c469280e3

/*描述
输入一行字符串(无中文字符),分别统计出其中英文字母、空格、数字和其它字符的个数。
输入描述:
输入任意字符串(注:测试用例输入字符串保证无中文字符)
输出描述:
输出字符串中包含的英文字母个数,数字个数,空格个数,其它字符个数*/
#include <iostream>
#include <cstring>
using namespace std;

int main() {

    int letter = 0;
    int digit = 0;
    int space = 0;
    int other = 0;

    char buf[1024] = { 0 };
    cin.getline(buf, sizeof(buf));

    for (int i = 0; buf[i] != '\0'; i++) {
        if (buf[i] >= 'a' && buf[i] <= 'z' || buf[i] >= 'A' && buf[i] <= 'Z') {
            letter++;
        } else if (buf[i] == ' ') {
            space++;
        } else if (buf[i] >= '0' && buf[i] <= '9') {
            digit++;//典错:else if (buf[i] >= 0 && buf[i] <=9)和else if ('0'<=buf[i] <='9') 猜测错误原因:buf[i]是char类型的 而 0和9以及连续不等式判断是数字型干的事情;所以要将0变'0';
        } else {
            other++;
        }
    }



    cout << "letter:" << letter << " digit:" << digit << " space:" << space <<
         " other:" << other << endl;

    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务