概述
#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: 统计字符个数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复