输入一串字符,统计ff,fl,fi出现的次数,为什么输入奇数个f就会出错啊?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

输入一串字符,统计ff,fl,fi出现的次数,为什么输入奇数个f就会出错啊?

#include
#include
using namespace std;
int main()
{
int a=0,b=0,c=0;
char aa,bb=' ';
vector ss;
while(cin.get(aa))
{
ss.push_back(aa);
}
for(vector::iterator i=ss.begin();i!=ss.end();++i)
{
if(bb=='f')
{
switch(*i)
{
case 'f':
++a;
break;
case 'l':
++b;
break;
case 'i':
++c;
break;
}
++i;
}
bb=*i;
}
cout<<"the number of ff is:"<<a<<endl;
cout<<"the number of fl is:"<<b<<endl;
cout<<"the number of fi is:"<<c<<endl;
system("pause");
return 0;
}

展开
收起
a123456678 2016-03-05 10:18:39 2156 0
1 条回答
写回答
取消 提交回答
  • a123456678
     #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    
    
    int main()
    {
        int a=0,b=0,c=0;
        string aa;
        char bb=' ';
        vector<char> ss;
    
        cin>>aa;
    
        for(string::size_type i = 0; i != aa.size(); ++i)
        {
            ss.push_back(aa.at(i));
        }
        for(vector<char>::iterator i=ss.begin();i!=ss.end();++i)
        {
            if(bb=='f')
            {
                switch(*i)
                {
                case 'f':
                    ++a;
                    break;
                case 'l':
                    ++b;
                    break;
                case 'i':
                    ++c;
                    break;
                }
                ++i;
            }
            bb=*i;
        }
        cout<<"the number of ff is:"<<a<<endl;
        cout<<"the number of fl is:"<<b<<endl;
        cout<<"the number of fi is:"<<c<<endl;
        system("pause");
        return 0;
    }
    2019-07-17 18:52:59
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载