题目 1035:
[编程入门]自定义函数之字符类型统计
时间限制: 1s 内存限制: 128MB 提交: 28276 解决: 15427
题目描述
编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。
输入格式
一行字符串
输出格式
统计数据,4个数字,空格分开。
样例输入
复制
!@#$%^QWERT 1234567
样例输出
复制
5 7 4 6
#include<stdio.h>
#include<string.h>//传入字符串的头文件
//sorts函数进行分类统计,参数是要统计的字符串、数字个数、字母个数、空格个数、其他字符个数
void sorts(char *str,int *num_num,int *num_char,int *num_space,int *num_other){
int len=0,i=0;//循环变量i,以及记录字符串长度len
len=strlen(str);//获取字符串长度
*num_num=0;//最初四个要统计的量置零
*num_char=0;
*num_space=0;
*num_other=0;
for(i=0;i<len;i++){//字符串从头到尾循环
if(str[i]>='0'&&str[i]<='9'){//记录数字个数
*num_num+=1;
}else if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z'){//字母
*num_char+=1;
}else if(str[i]==' '){//空格
*num_space+=1;
}else{//其他字符
*num_other+=1;
}
}
}
int main(){
char Mystring[1024];//输入字符串
int num_num,num_char,num_space,num_other;
scanf("%[^\n]",Mystring);//不知道为什么用这个格式
sorts(Mystring,&num_num,&num_char,&num_space,&num_other);
printf("%d %d %d %d\n",num_char,num_num,num_space,num_other);
return 0;
}
#include<stdio.h>
int main(){
int a=0,b=0,c=0,d=0;
char x;
while((x=getchar())!='\n'){//循环接收字符
if(x>='a'&&x<='z'||x>='A'&&x<='Z'){
a++;
}else if(x>='0'&&x<='9'){
b++;
}else if(x==' '){
c++;
}else{
d++;
}
}
printf("%d %d %d %d",a,b,c,d);
}