每日一题断更一天(补上):1063统计字符

简介: 题目描述:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。输入:无

题目描述:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

输入:

输出:

样例输入:

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;

}

目录
相关文章
|
8月前
|
C语言
【Leetcode-1638.统计只差一个字符的字串数目(C语言)】
【Leetcode-1638.统计只差一个字符的字串数目(C语言)】
28 0
|
9月前
LeetCode题解-让所有学生保持开心的分组方法数
LeetCode题解-让所有学生保持开心的分组方法数
|
1月前
【错题集-编程题】包含不超过两种字符的最长字串(滑动窗口)
【错题集-编程题】包含不超过两种字符的最长字串(滑动窗口)
|
11月前
|
Cloud Native
【刷题日记】316. 去除重复字母
本次刷题日记的第 42 篇,力扣题为:316. 去除重复字母 ,中等
刷爆leetcode第十二期 0026 数组中数字出现的次数
刷爆leetcode第十二期 0026 数组中数字出现的次数
77 0
刷爆leetcode第十二期 0026 数组中数字出现的次数
|
索引
力扣刷题记录——434. 字符串中的单词数、448. 找到所有数组中消失的数字、455. 分发饼干
力扣刷题记录——434. 字符串中的单词数、448. 找到所有数组中消失的数字、455. 分发饼干
力扣刷题记录——434. 字符串中的单词数、448. 找到所有数组中消失的数字、455. 分发饼干
|
C++ ice Perl
【力扣·每日一题】748. 最短补全词(C++ 模拟)
【力扣·每日一题】748. 最短补全词(C++ 模拟)
61 0
【力扣·每日一题】748. 最短补全词(C++ 模拟)
亲身经历:如何判断一个字符在a/z之前?
亲身经历:如何判断一个字符在a/z之前?
52 0
|
算法
【Day18】LeetCode算法刷题[1694. 重新格式化电话号码 ] [202.快乐数]
学习LeetCode算法刷题[1694. 重新格式化电话号码 ] [202.快乐数]。
91 0
【Day18】LeetCode算法刷题[1694. 重新格式化电话号码 ] [202.快乐数]