qq_45735316 2020-10-16 22:06 采纳率: 94.1%
浏览 53
已采纳

这段代码如果按照题意来说应该不正确吧?‘lol'只有三段也能输出yes,正确的应该是怎样写的?

图片说明

#include<iostream>
#include<string>
using namespace std;

string str;
int pos;

bool isYuan(char c) //判断是否为元音 
{
    return c=='a'||c=='e'||c=='i'||c=='o'||c=='u';
}
bool yuan()         //遍历元音段 
{
    int len=0;
    for(;pos<=str.length();pos++){
        if(!isYuan(str[pos])) break;
        len++;
    }
    return len;
}
bool zhuo()         //遍历辅音段 
{
    int len=0;
    for(;pos<=str.length();pos++){
        if(isYuan(str[pos])) break;
        len++;
    }
    return len;
}
bool serch()        //开始遍历 
{
    pos=0;
    if(zhuo()&&yuan()&&zhuo()&&yuan()&&pos==str.length()) return true;
    else return false;
}

int main()
{
    cin>>str;
    if(serch()) cout<<"yes"<<endl;
    else cout<<"no"<<endl;
    return 0;
}

来源:https://blog.csdn.net/the_ZED/article/details/104885583?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160282276719724836711550%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160282276719724836711550&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-2-104885583.pc_first_rank_v2_rank_v28&utm_term=%E8%93%9D%E6%A1%A5%E6%9D%AF%E7%AC%AC%E5%8D%81%E4%B8%80%E5%B1%8A%E6%A0%A1%E5%86%85%E6%A8%A1%E6%8B%9F%E8%B5%9B&spm=1018.2118.3001.4187

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-10-16 23:52
    关注

    c++的话,用正则表达式即可

    ^([^aeiou]+[aeiou]+){2}$
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波