C++,输入字符串,统计各个字母出现次数,显示字母和次数,求大神知道咩

供稿:hz-xin.com     日期:2025-01-14
C语言 输入一个字符串,统计各字母出现的次数,输出出现了4次的所有字母。 英文字母区分大小写。


#include #include #include void init(int cASCII[52][2]);//初始化数组int main(){ char str[]="Please say hello to your parents,oh."; int i,j,cASCII[52][2]; init(cASCII); printf("输入:%s
",str);//输入我就懒得手输了,直接初值,你要手输,加个scanf吧 for(i=0;i<52;i++) for(j=0;j<strlen(str);j++) { if(cASCII[i][0]==str[j]) cASCII[i][1]++; } for(i=0;i<52;i++) if(cASCII[i][1]==4)//出现4次的字母 printf("%c
",cASCII[i][0]); return 0;}void init(int cASCII[52][2])//初始化数组{ int asc,i;//cASCII存储大小写52个字母的ASCII码及出现次数 //65~90对应大写字母A~Z asc=65; for(i=0;i<26;i++) { cASCII[i][0]=asc++; cASCII[i][1]=0; } //97~122对应大写字母a~z asc=97; for(;i<52;i++) { cASCII[i][0]=asc++; cASCII[i][1]=0; }}

我写的:避免双重循环:
#include "stdio.h"
#define N 100
int main() {
char s[N];
printf("Input a string:
");
scanf("%s",s);
int i,up[26]={0},down[26]={0};
for(i=0;i<N && s[i]!=0;i++) {
if(s[i]>='A' && s[i]<='Z') // 大写字母
up[ s[i]-'A' ]++;
else if(s[i]>='a' && s[i]<='z') //小写字母
down[ s[i]-'a' ]++;
else { // 其它 出错
printf("What you input is not a valid string,error--> %c
",s[i]);
return 0;
}
}
printf("The result is as follows:
");
for(i=0;i<26;i++) {
if(up[i]!=0)
printf("%c----%d
",i+'A',up[i]);
if(down[i]!=0)
printf("%c----%d
",i+'a',down[i]);
}
return 0;
}

1、首先我们选择鼠标单击文件里的“新建”项目。

2、选择为:控制台应用程序 - “名称:计算字符串中每个字母的出现次数 - ”确定。

3、之后我们选择确定系统生成的代码。

4、首先编写一个字符串进行测试。

5、测试代码1:使用Dictionary集合和循环来确定测试代码。

6、测试结果1:程序成功运行后显示每个字母的出现次数。



#include<iostream>
using namespace std;
int A[26];//大写
int a[26];//小写
int main()
{
char n[10000];//输入串
cin>>n;
for(int i=0;n[i]!=0;i++){
if(n[i]>='a' && n[i]<='z')a[n[i]-'a']++;//小写检测
else A[n[i]-'A']++;//大写检测
}
for(int i=0;i<=26;i++)if(A[i]!=0)cout<<char(i+'A')<<' '<<A[i]<<'\n';
for(int i=0;i<=26;i++)if(a[i]!=0)cout<<char(i+'a')<<' '<<a[i]<<'\n';//输出
system("pause");//使程序暂停(按任意键继续),比赛中不要加这句
return 0;
}

 #include <iostream>
 using namespace std;
 void main(void)
 {
   char c_str[200] = { 0 }; // 存放输入字符串
   int frq[26] = { 0 }; //记录字符出现次数
   cout << "Please a string that long blow 200 and has no space\n";
   gets( c_str );
   int i=0;
   int n_max = 0; // 频率最大值
   for( i = 0; i < strlen( c_str ); i++)
  {
   if( c_str[i] >= 'a' && c_str[i] <= 'z') n_max = max( ++frq[c_str[i] -'a'],n_max) ;
   else if ( c_str[i] >= 'A' && c_str[i] <= 'Z' ) n_max =max( ++frq[c_str[i] -'A'],n_max);
  }
// 按照出现频率输出 
 while( n_max )
  {
   for( i = 0; i< 26 ; i++)
   {
   if ( frq[i] == n_max)
   {
   cout << char( 'a' + i ) << "\t" << n_max << endl;
   }
  }
   n_max--;
  }
 }

#include <stdio.h>
#include <string.h>
void main()
{
char str[200];
int fre[26]={0}; //定义一个存放频率的数组,fre[0]对应a,依此类推~
gets(str);
for(int i=0;i<strlen(str);i++)
{
if(str[i]>='a' && str[i]<='z')
fre[str[i]-'a']++;
if(str[i]>='A' && str[i]<='Z')
fre[str[i]-'A']++;
}
for (int i=0;i<26;i++)
{
if(fre[i]!=0)
printf("字母 %c【%c】的频率: %d\n",'a'+i,'A'+i,fre[i]);
}
}

#include<iostream>

using namespace std;

const int n=80;

int main()

{

int i,j,k;

int b[26]={0};

char a[n];

cout<<"输入字符串:"<<endl;

cin>>a;

for(i=0;i<strlen(a);i++)

for(j=0;j<26;j++)

if(a[i]=='a'+j||a[i]=='A'+j)

b[j]++;

for(k=0;k<26;k++)

cout<<char('a'+k)<<"的个数为: "<<b[k]<<endl;

return 0;

}



C++ 编制一个函数,统计字符串中26个英文字母各自的出现次数。_百度知 ...
include <stdio.h> void count(char* str, int occur[]){ while(*str){ if('a'<=*str&&*str<='z')occur[*str-'a']++;else if('A'<=*str&&*str<='Z')occur[*str-'A']++;str++;} } int main(){ char s[256];int c[26]={0},i;gets(s);count(s,c);for(i=0;i...

c++输入一行字符串,要求分别统计出其中英文大写字母、小写字母、数字...
ben++;} else if(sen[i]>='a'&&sen[i]<='z'){ men++;} else if(sen[i]>=''){ spa++;} else if(sen[i]>='0'&&sen[i]<='9'){ num++;} else { oth++;} } printf("大写字母有%d个\\n小写字母有%d个\\n空格有%d个\\n数字有%d个\\n其他字符有%d个\\n",ben,men,...

c++编程实现输入一串字符,分别统计数字字符、大、小写字母、其它字符...
遍历一次就够了,核心伪代码如下:while(没到字符串尾){ if(数字字符){数字字符数++;} else if(大写字母){大写字母数++;} else if(小写字母){小写字母数++;} else {其它字符数++;} }

c++中如何统计输入的字母数量并输出?
2. 掌握`std::map`的使用,它是关联容器,可高效地存储键值对。3. 了解`std::pair`的使用,`std::map`内部存储结构为``对,`std::pair`则用于此类对的封装。步骤如下:1. 定义`std::map`实例,用于存储字母与对应出现次数。2. 使用基于范围的for循环遍历输入字符串,统计字母出现次数。3. ...

c++ 输入一行字符,分别统计出其中
用循环语句即可依次统计。1、while语句:include<stdio.h>int main(void){ \/\/输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 char ch; int char_num=0,kongge_num=0,int_num=0,other_num=0; while((ch=getchar())!='\\n')\/\/回车键结束输入,并且回车符...

C++编程:输入一串字符,统计其中出现的每一种字符的个数(包括中文字符...
\/\/指向下一个节点};class ChineseCache \/\/中文字符缓存{ private: Chinese* stcCacheHead; \/\/缓存首地址 Chinese* stcCacheCur; \/\/缓存当前的操作位置,一般指向尾部,每次增加一个节点,它也随着移动一个单位 void AddCache(const char* chr1Chinese); public: ChineseCache(); ...

...上随便输入几个键,然后分别统计出有几个大写字母,几个小写字母,几个...
} \/\/ 统计数字个数 else if (isdigit(input[i])) { numCount++; } }}int main(){ char szInput[100] = {0}; cout << "请输入字符串: " << endl; cin >> szInput; int upperCount = 0; int lowerCount = 0; int numCount = 0; G...

输入一组字符串,统计该字符串中数字、字母、空格、其他的数量,求C++...
include<iostream> using namespace std;int main(){ char a[80];int i=0,s=0,t=0,z=0,v=0;cout<<"输入字符串:"<<endl;\/\/for(i=0;i<=80;i++)\/\/cin>>a[i];gets(a);for(i=0;i<=80;i++){ if(a[i]>='0'&&a[i]<='9')s++;else if(a[i]>='A'&&a[i]<=...

C++求救~~任意输入一行字符,统计字母a和A的个数。
\/\/ \/\/ C++~~任意输入一行字符,统计字母a和A的个数。 C++代码如下:\/\/ include<iostream> using namespace std;int main(){ int n = 0;string s;cout << "Enter the string to be processed : "; \/\/输入字符串 cin >> s;for(string:: size_type i = 0; i < s.size(...

C语言编程:从键盘输入一串字符(长度不超过80),统计出各字母出现的次数...
num[j]++;n++;\/*出现的字符的种类数加1*\/ } } for(i=0;i<n;i++)\/*输出*\/ printf("\\'%c\\'出现了%d次\\n",ch[i],num[i]);} main(){ int i=0;char s[MAX];printf("请输入一个字符串:");while((s[i]=getchar())!='\\n')\/*输入*\/ i++;s[i]='\\0';detect(s)...