C语言中,输入一段字符串(大小写的字母),要求输出:有哪些字母及其个数

 我来答
淦海瑶s1
推荐于2016-10-16 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:767万
展开全部
int a[26]={0},b[26]={0};
char c[100];
int i;
gets(c);
for(i=0;c[i]!='\0';i++)
{
if(c[i]>='a'&&c<='z')
a[c[i]-'a']++;
if(c[i]>='A'&&c<='Z')
b[c[i]-'A']++;
}
这样就可以算出每个字符的出现次数,打印出来就可以
printf("小写字符个数:\n");
for(i=0;i<26;i++)
{
if(a[i]==0)
continue;
printf("%c %d\n",i+'a',a[i]);
}
printf("大写字符个数:\n");
for(i=0;i<26;i++)
{
if(b[i]==0)
continue;
printf("%c %d\n",i+'A',b[i]);
}
kun_sir_
2012-01-06 · 超过27用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:41.6万
展开全部
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int i,sum=0;
char a[100];
printf("请输入:");
scanf("%s", a);
printf("\n大小写字母 :");
for(i=0; '\0'!=a[i]; i++)
{
if((a[i]>='a'&& a[i]<='z') ||( a[i]>='A' && a[i]<='Z' ))
{
sum++;
putchar(a[i]);
}
}
printf("\n大小写字母个数 : %d\n",sum);
return 0;
}
追问
若这段字符串中有重复的字母呢?若要是按照你的这个来,,,同样会输出重复的字母
追答
参照3楼,我给他投票了。我是审错题了。
cnt[200]改成cnt['z'+1]更节省内存。
再想更节省内存就cnt[26+26],但是你的储存和计算都要转换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
2012-01-06 · TA获得超过7223个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1867万
展开全部
#include<stdio.h>
#include<string.h>
char s[1000];
int main(void)
{
int cnt[200]={0};
int i;
gets(s);
for(i=0;s[i];i++)
{
cnt[s[i]]++;
}
for(i='a';i<='z';i++)
{
if(cnt[i]>0)
{
printf("%c:%d\n",i,cnt[i]);
}
}
for(i='A';i<='Z';i++)
{
if(cnt[i]>0)
{
printf("%c:%d\n",i,cnt[i]);
}
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式