qq_45735316 2020-04-17 10:59 采纳率: 94.1%
浏览 176
已采纳

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条回答 默认 最新

  • threenewbee 2020-04-17 11:02
    关注

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

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

    https://ask.csdn.net/my

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历