c++统计字母出现的频率(修正版 运行绝对正确!含c语言版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<iostream>
#include<string>
using namespace std;
void transform(char str[]);
void sort(char str[]);
void total(char str[]);
int n;
void main()
{
LOOP:
cout<<"请输入不含特殊符号的字符串(在200字之内,不区分大小写):"<<endl;
char str[200];
cin>>str;
n=strlen(str);
for(int i=0;i<n;i++)
if((str[i]<65)||((str[i]>90)&&(str[i]<97))||(str[i]>122))
{
cout<<"你输入的字符串内含非法字符,请确认后重新输入"<<endl;
goto LOOP;
}
transform(str);
sort(str);
total(str);
}
void transform(char str[])
{
int i;
for(i=0;i<n;i++)
if((str[i]>=65)&&(str[i]<=90))
str[i]=str[i]+32;
}
void sort(char str[])
{
int i,j;
char c;
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
{
if(str[j]>str[j+1])
{
c=str[j];
str[j]=str[j+1];
str[j+1]=c;
}
}
}
void total(char str[])
{
int i,j,a[26]={1};
cout<<"字母"<<'\t'<<"次数"<<endl;
for(i=0,j=0;i<n;i++)
{
if(str[i]==str[i+1])
a[j]++;
else
{
cout<<str[i]<<'\t'<<a[j]<<endl;
j++;
a[j]=1;
}
}
}
/*#include <stdio.h>
#include <ctype.h>
int main(void)
{
int a[26]={0};
int i;
char c;
while((c=getchar())!=10)
if(isalpha(c)) a[tolower(c)-'a']++;
for(i=0;i<26;i++)
{
printf("%c\t:\t%d\n",'a'+i,a[i]);
}
return 0; }*/。

相关文档
最新文档