算法>dotcpp-----问题 1012: 统计字符个数

#2018-5-13  17:21

#武汉工程大学邮电与信息工程学院邮科院校区

#软件工程1604谷子毅


提示:如果文中链接失效或有疑惑,请留言,我会在看到的第一时间帮助解决,谢谢支持!


问题 1012: 统计字符个数

时间限制: 1Sec 内存限制: 128MB 

题目描述

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

输入

一行字符

输出

统计值

样例输入
aklsjflj123 sadf918u324 asdf91u32oasdf/.';123
样例输出
23 16 2 4



这个题最大的问题是直接用scanf("%d", &s);不能一下子读取带空格的字符串,比如“123 456”,这个是我想通过这个题告诉大家的,另外的方法就是使用getchar()或者gets(),这里就不再多提了。



//方法一
#include<stdio.h>
#include<string.h>
int main(){
	char s[100];
	int a[4]={0};
	scanf("%[^\n]", s);
	for(int i = 0; i <strlen(s); i++){
		if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
			a[0]++;
		else if(s[i]>='0'&&s[i]<='9')
			a[1]++;
		else if(s[i] == ' ')
			a[2]++;
		else 
			a[3]++;
	}
	printf("%d %d %d %d", a[0],a[1],a[2],a[3]);
}   


看看这里的%[^\n]   ,^是非的意思,我给大家解释下就是只要不碰到回车就不暂停输入,要是改成%[^ ]的话就是碰到空格结束读取,大家可以自己试一下,同样的还可以改成别的,让我们看一个改过的题。


输入字符串,以字母E或N或D结尾,统计字母,数字,空格,回车,其他字符的个数,输出

#include<stdio.h>
#include<string.h>
int main()
{
	char a[80];
	int zimu = 0, kongge = 0, huiche = 0, shuzi = 0, qita = 0, i;

	scanf("%[^END]",a);
	for(i = 0; i < strlen(a); i++)
	{
		if(a[i] >= 'a' && a[i] <= 'z' || a[i] >= 'A' && a[i] <= 'Z')
		zimu++;
		else if(a[i] >= '0' && a[i] <= '9')
		shuzi++;
		else if(a[i] == ' ')
		kongge++;
		else if(a[i] == '\n')
		huiche++;
		else
		qita++;
	}
	printf("字母%d 数字%d 空格%d 回车%d 其他%d",zimu, shuzi, kongge, huiche, qita);
	return 0;
 }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值