自定义函数之字符类型统计
题目链接:https://www.dotcpp.com/oj/problem1035.html
题目描述
编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。
输入格式
一行字符串
输出格式
统计数据,4个数字,空格分开。
样例输入
复制
!@#$%^QWERT 1234567
样例输出
复制
5 7 4 6
注意事项:1.scanf见到空格会吞掉数组,所以使用gets来进行字符串的存储。
2.其中<bits/stdc++.h>(万能头文件)可以修改为<iostream><cstring>两个头文件
函数:1.isalpha函数 int isalpha(int ch);
检查给定字符是否为当前C语言环境下的字母字符,包括——
大写字母ABCDEFGHIJKLMNOPQRSTUVWXYZ
小写字母abcdefghijklmnopqrstuvwxyz
如果是,返回非零值,否则返回零值。
2. isdigit函数:int isxdigit(int ch)
检查给定字符是否为当前C语言环境下的数字字符,包括—— 数字 0123456789
如果是,返回非零值,否则返回零值。
参考:https://blog.csdn.net/CV_Jason/article/details/86101931
#include<bits/stdc++.h>//万能头文件
#define max 1000
using namespace std;
int main() {
int a=0,b=0,c=0,d=0;
char arr[max];
gets(arr);
int len=strlen(arr);
for(int i=0; i<len; i++) {
if(isalpha(arr[i]))
a++;
else if(isdigit(arr[i]))
b++;
else if(arr[i]==' ')
c++;
else
d++;
}
cout<<a<<' '<<b<<' '<<c<<' '<<d<<endl;
return 0;
}