0
点赞
收藏
分享

微信扫一扫

buctoj 2407 I 统计字母个数 题解

覃榜言 2022-03-15 阅读 63
c语言c++

本题要输出字母和对应出现的次数,所以我们定义一个字符数组,用来存储26个字母,再定义一个整型数组,用来存储字母出现的次数。

注意本题中的文段包含空格和换行符,我们采用scanf进行循环输入,当遇到#时我们终止输入(注意这里最好不使用string类型,因为无论是cin形式还是getline形式输入,都无法获取换行符)。

for(i=0;;i++)
 {
  scanf("%c",&se[i]);
  if(se[i]=='#')
  break;
 }
se[i+1]='\0';

同时我们注意到,s[i]是#,则我们将s[i]的后一位赋值为\0。

最后我们将文章进行依次检索,当对应到某个字母时,则字母相应的计数值加一。

#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
 char k[26];
 int s[26];
 int i,j;
 for(i=0;i<26;i++)
 {
  k[i]=97+i;
 }

 for(i=0;i<26;i++)
 {
  s[i]=0;
 }
 
 char se[1000000];
 for(i=0;;i++)
 {
  scanf("%c",&se[i]);
  if(se[i]=='#')
  break;
 }
 se[i+1]='\0';
 int t=strlen(se);
 for(i=0;i<t;i++)
 {
  for(j=0;j<26;j++)
  {
   if(se[i]==k[j])
   {
    s[j]++;
   }
  }
 }
 for(i=0;i<26;i++)
 {
  cout<<k[i]<<" "<<s[i]<<endl;
 }
}
举报

相关推荐

0 条评论