[凡鸽鸽]《课内学习02》习题4:用指针编写一个程序指出其中字符的总个数、大、小写字母、数字以及其他字符的个数

课内学习02

习题4:

用指针编写一个程序,当输入一个字符后,要求不仅能够统计其中字符的个数,还能分别指出其中大、小写字母、数字以及其他字符的个数。【注:需要使用cin.getline(xrf, 100);】

传统惯例,先上代码(解释见下文):

#include <iostream>
using namespace std;
int main()
{
    system("color F0");
    char xrf[100];
    cout << "请输入一个字符串:"<<endl;
    cin.getline(xrf, 100);//使用题目条件中要求的代码;
    cout << endl;
    int number = 0, capital = 0, lowercase = 0, i, other = 0;
    for (i = 0; xrf[i] != '\0'; i++)
    {
        if (xrf[i] >= '0' && xrf[i] <= '9')number++;
        else if (xrf[i] >= 'a' && xrf[i] <= 'z')lowercase++;
        else if (xrf[i] >= 'A' && xrf[i] <= 'Z')capital++;
        else other++;
    }
    //输出相关信息
    cout << "用户输入的字符串总字符个数为:" << i << endl;
    cout << "用户输入的字符串中大写字母总个数为:" << capital << endl;
    cout << "用户输入的字符串中小写字母总个数为:" << lowercase << endl;
    cout << "用户输入的字符串中数字总个数为:" << number << endl;
    cout << "用户输入的字符串中其他字符总个数为:" << other << endl;
    system("pause");
    return 0;
}

解释:

1.大部分类型的字符都有对应的ASCII码值,对照ASCII码表即可知道:
0~9为数字的ASCII码值范围;
65~90为大写字母的ASCII码值范围;
97~122为小写字母的ASCII码值范围;
其他ASCII码值即为题中要求的其他字符;

2.故只要判断用户所输入字符的ASCII码值处于哪个范围内即可知道是数字、大写、小写还是其他字符了;
再定义几个变量分别计算对应字符类型个数并输出即可。

注:

博主直接使用类似 ‘a’~‘z’ 区间来判断是什么类型的字符。这种方法也是可行的,并且更加直观,方便,不易错。

 if (xrf[i] >= 'a' && xrf[i] <= 'z')lowercase++;

测试运行结果如下:
运行结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值