由于今天开会,没时间了!断更一天!2021.7.27
补上(2021.8.6):之前的全都补上
题目描述:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
输入:
无
输出:
无
样例输入:
a 1,
样例输出:
1
1
1
1
分析:这道题不难有多种方法,第一种:数组(这一种可能在C语言网上出现错误);第二种:单个输入(个人建议使用这而一种);
有需要自取!
源码1:
include <stdio.h>
include <string.h>
int main(void)
{
int n=20; //定义
char c[n]; 数组
int i,x,a=0,b=0,k=0,d=0;//方便计数,初始值都设为一
gets(c);// 方法得到字符串数组
x=strlen(c);//计算数组长度
for(i=0;i<x;i++){
if((c[i]>64&&c[i]<91)||(c[i]>96&&c[i]<123)){//从a到z,从A到Z,如果是则加一
a++;
}else if(c[i]==32){//空格的ASCII码为32,一定要记住,以后会经常用到
b++;
}else if(c[i]>47&&c[i]<58){ //数字0到9的ASCII码,同样重要
k++;
}else{ //如果是其他字符,则d++;
d++;
}
}
printf("%d\n%d\n%d\n%d\n",a,b,k,d);//输出就行了,注意上面的输出案例都换行了
return 0;
}
源码2:(这一种不会出现,指针飘移等问题,建议食用!)
include <stdio.h>
int main(void)
{
int a=0,b=0,k=0,d=0;
char ch;
while(1){
scanf("%c",&ch);
if(ch=='\n'){
break;
}
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
a++;
}else if(ch==' '){
b++;
}else if(ch>='0'&&ch<='9'){
k++;
}else{
d++;
}
}
printf("%d\n%d\n%d\n%d\n",a,b,k,d);
return 0;
}
最后一次更新于2022-01-21
0 条评论