qq_45735316
qq_45735316
采纳率80.7%
2020-04-17 10:59

string类里面不是对!=进行重载了吗?为什么调用不了?

已采纳

/*C++ P249 6-21.编写一个函数,统计一句英文句子中字母的个数,在主程序中输入输出*/

#include <iostream>
#include <string>
#include <algorithm>
#include "ctype.h"//大小写转换的函数 
using namespace std; 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int Statistic(string *str)
{
    int i=0,j=0;

    int a[26]={0};
        int *p=a;
    while(*(str+i)!='\0')
    {
        if((int)*(str+i)>=97&&(int)*(str+i)<=123)
        {
            *(str+i)=toupper(*(str+i));
        }
        i++;
    }
    i=0;
    while(*(str+i)!='\0')
    {
        if(*(str+i)!=' ')
            a[(int)(*(str+i)-'A')]++;
        i++;
    }
    return *p;
 } 
int main(int argc, char** argv) {
    string str;
    cin>>str;
    int *a;
    a=Statistic(str);
    int max=max(a);
    for(int i=0;i<26;i++)
    {
        int s+=a[i];
    }
    cout<<"字母总个数为"<<s<<endl;
    cout<<"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"<<endl;
    cout<<"---------------------------------------------------"<<endl;
    for(int i=0;i<max;i++)
    {
        for(int j=0;j<26;j++)
        {
            if(a[j])
            {
                cout<<"*"<<" ";
                a[j]--;
            }
        }
        cout<<endl;
     } 
    return 0;
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 1年前

    while(*(str+i)!='\0')
    ->
    while(*(str->c_str()+i)!='\0')
    别的类似

    之前的问题如果解决的话,已经有很多了,麻烦采纳下

    https://ask.csdn.net/my

    点赞 评论 复制链接分享