题目 1035: [编程入门]自定义函数之字符类型统计

编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。

统计数据,4个数字,空格分开。

样例输入

!@#$%^QWERT    1234567

样例输出

5 7 4 6 

计数就好了,录入字符串getline()函数能够录入空格(在string头文件里)。

其次利用计数,将4种数据类型计数初始化为0,再进行判断。

判断过程中,值得注意的有两点:

       一是,if---else if---else判断(见代码)

if 的else在于前面的一个if不断排除的条件的else(不管是else if还是if)

      二是要注意字符串字母的数字的范围,ASCII码表中A-Z到a-z区间内相隔几个其他字符串][等等

A-Z是65~90,a-z是90~122。其他的就没什么了

//统计字符串中" 字母 数字 空格 其他字符 "的个数
#include<iostream>
#include<string>
using namespace std;

int GetCount(string str1) {
	int word = 0;
	int num = 0;
	int space = 0;
	int otr = 0;

	for (int i = 0; i < str1.length(); i++) {
		     /*ascii码值:A-Z 65到90   a-z 97到122*/
		if ((str1[i] >= 'A' && str1[i] <= 'Z')||(str1[i]>='a' &&str1[i] <= 'z') ) {
			++word;     //没有其他区别话 ++word要快于word++
		}
		else if (str1[i] >= '0' && str1[i] <= '9')
		{
			++num;
		}
		else if (str1[i] == ' ') {
			++space;
		}
		else {
			++otr;
		}
		/*cout << "字母 数字 空格 其他" << endl;*/
		/*cout << word << " " << num << " " << space << " " << otr<<endl;*/
	}
	
	cout << word << " " << num << " " << space << " " << otr;
	return 0;
}

int main() {
	string str1;
	getline(cin, str1);  //
	GetCount(str1);

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值