我是靠谱客的博主 诚心冬日,最近开发中收集的这篇文章主要介绍算法>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;
 }


最后

以上就是诚心冬日为你收集整理的算法>dotcpp-----问题 1012: 统计字符个数的全部内容,希望文章能够帮你解决算法>dotcpp-----问题 1012: 统计字符个数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部