C++程序, 编写一个名为countAlpha的函数,可以输出给定的字符串中出现次数最多的字母和出现的次数

具体要求如下:(1)如果字符串为空,则输入为空的信息到屏幕。比如字符串为"\0"或""。(2)字符串不区分字母的大小写。如A和a都出现,则认为A出现了2次。(3)在主函数... 具体要求如下:
  (1)如果字符串为空,则输入为空的信息到屏幕。比如字符串为"\0" 或 ""。
  (2)字符串不区分字母的大小写。如A和a都出现,则认为A出现了2次。
  (3)在主函数main中调用这个函数,以测试您的程序效果。
展开
 我来答
龍不悔
2013-11-11 · TA获得超过1138个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:497万
展开全部
#include<iostream>
using namespace std;
void countAlpha(char *str)
{
     if(str==NULL || *str=='\0')
     {
                  cout<<"字符串为空"<<endl;
                  return;
     }
     
     char c= str[0];
     int t=1,tc=1;
     
     for(int i=0; i<strlen(str); i++)
     {
             tc=1;
             for(int j=i+1; j<strlen(str); j++)
             {
                     if(str[i] == str[j] || str[i] == str[j]-('A'-'a') ||str[i] == str[j]+('A'-'a') )
                     {
                               tc++;
                     }
                     if(tc>t)
                     {
                             c = str[i];
                             t = tc;
                     }
                     //相同出现次数处理没讲清楚 
             }
     }
     
     cout<<str<<"中字符"<<c<<"出现次数为"<<t<<";出现次数最多。\n";
}
int main()
{
    char str1[]="hsdjfhjsdfHfdgfHhsdfhhH";
    countAlpha(str1);
    char str2[]="";
    countAlpha(str2);
    char str3[]="\0";
    countAlpha(str3);
    
    system("pause");
    return 0;
}

测试结果如下:

有问题欢迎继续提问,望采纳!

更多追问追答
追问

不好意思,有要求     一种可能的调用效果:

countAlpha("1232345974448993919040\n\t\b$%$^$#$@^@%@bcdaefgaddd");

countAlpha("ABCDEFGzZ");

countAlpha("1232345974448993919040\n\t\b$%$^");

countAlpha("\0");

countAlpha("");

    

追答

字数限制只能传附件了,

测试结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式