列表

详情


CPP34. 使用字符函数统计字符串中各类型字符的个数

描述

键盘录入一句话,统计这话中字母字符、数字字符、空白、标点符号和其它字符的个数。(使用字符函数实现)

输入描述

键盘输入一个字符串

输出描述

输出字符串中字母字符、数字字符、空白、标点符号和其它字符的个数。

示例1

输入:

hello123world,$ 123

输出:

chars : 10 whitespace : 1 digits : 6 others : 2

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 2ms, 内存消耗: 312KB, 提交时间: 2022-03-04

#include <stdio.h>

int main()
{
    int whitespace = 0;
    int digits = 0;
    int chars = 0; 
    int others = 0;
    char ch;
    while ((ch = getchar()) != '\n')
    {
        if (ch == ' ')
        {
            whitespace++;
        }
        else if (ch >= '0' && ch <= '9')
        {
            digits++;
        }
        else if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))
        {
            chars++;
        }
        else
        {
            others++;
        }
    }
    printf("chars : %d ", chars);
    printf("whitespace : %d ", whitespace);
    printf("digits : %d ", digits);
    printf("others : %d ", others);
    return 0;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 316KB, 提交时间: 2022-05-28

#include <iostream>
#include <string>

using namespace std;

int main() {

    string str;
    getline(cin, str);

    int whitespace = 0;
    int digits = 0;
    int chars = 0;
    int others = 0;

    // write your code here......
    for(int i = 0; i < str.length(); i++){ //遍历字符串
        if(isalpha(str[i])) //判断是否是字母
           chars++;
        else if(isdigit(str[i])) //判断是否是数字
           digits++;
        else if(isspace(str[i])) //判断是否是空格
           whitespace++;
        else
           others++;
    }

    cout << "chars : " << chars
        << " whitespace : " << whitespace
        << " digits : " << digits
        << " others : " << others << endl;

    return 0;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 316KB, 提交时间: 2022-02-10

#include <iostream>
#include <string>

using namespace std;

int main() {

    string str;
    getline(cin, str);

    int whitespace = 0;
    int digits = 0;
    int chars = 0;
    int others = 0;

    // write your code here......
    for(int i=0; i< str.length() ; i++){
        if(isalpha(str[i]))
            chars++;
        else if(isdigit(str[i]))
            digits++;
        else if(isspace(str[i]))
            whitespace++;
        else
            others++;
    }
    cout << "chars : " << chars
        << " whitespace : " << whitespace
        << " digits : " << digits
        << " others : " << others << endl;

    return 0;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 384KB, 提交时间: 2021-12-19

#include <iostream>
#include <string>

using namespace std;

int main() {

    string str;
    getline(cin, str);

    int whitespace = 0;
    int digits = 0;
    int chars = 0;
    int others = 0;

    // write your code here......
     for(int i = 0; i < str.length(); i++){ //遍历字符串
        if(isalpha(str[i])) //判断是否是字母
           chars++;
        else if(isdigit(str[i])) //判断是否是数字
           digits++;
        else if(isspace(str[i])) //判断是否是空格
           whitespace++;
        else
           others++;
    }

    cout << "chars : " << chars
        << " whitespace : " << whitespace
        << " digits : " << digits
        << " others : " << others << endl;

    return 0;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 388KB, 提交时间: 2022-01-26

#include <iostream>
#include <string>

using namespace std;

int main() {

    string str;
    getline(cin, str);

    int whitespace = 0;
    int digits = 0;
    int chars = 0;
    int others = 0;

    // write your code here......
    for(int i=0;i<str.length();i++){
        if(isalpha(str[i]))
           chars++;
        else if(isdigit(str[i]))
           digits++;
        else if(isspace(str[i]))
           whitespace++;
        else
            others++;
    }

    cout << "chars : " << chars
        << " whitespace : " << whitespace
        << " digits : " << digits
        << " others : " << others << endl;

    return 0;
}

上一题