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

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

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

报告相同问题?

悬赏问题

  • ¥15 关于#cesium#的问题:cesium 根据经纬度、高度、方位角、俯仰角和距离求另一点高度
  • ¥15 word脚注设置不起空格符号
  • ¥15 为什么apriori的运行时间会比fp growth的运行时间短呢
  • ¥15 求解密json或者美化
  • ¥15 帮我解决一下膳食平衡的线性规划模型的数据实例
  • ¥40 万年历缺少农历,需要和阳历同时显示
  • ¥250 雷电模拟器内存穿透、寻基址和特征码的教学
  • ¥200 比特币ord程序wallet_constructor.rs文件支持一次性铸造1000个代币,并将它们分配到40个UTXO上(每个UTXO上分配25个代币),并设置找零地址
  • ¥15 关于Java的学习问题
  • ¥15 如何使用chatgpt完成文本分类任务?