C++ 如何在字符串中使用多个逻辑运算符

C++ 如何在字符串中使用多个逻辑运算符,c++,arrays,string,C++,Arrays,String,我想在索引处检查它是否是辅音,相邻的索引是否是元音,所以我在语法上遇到了问题,是否有更好的方法继续 我试着用我版本的For循环运行代码,但是我设置的用于存储满足条件的索引数量的变量的值没有增加 if (s[i]!= ('a' || 'e' || 'i' || 'o' || 'u') && s[i+1] == ('a' || 'e' || 'i' || 'o' || 'u')) 它不断给出0作为输出。编写一个函数。例如: bool isvowel( char c ) {

我想在索引处检查它是否是辅音,相邻的索引是否是元音,所以我在语法上遇到了问题,是否有更好的方法继续

我试着用我版本的For循环运行代码,但是我设置的用于存储满足条件的索引数量的变量的值没有增加

if (s[i]!= ('a' || 'e' || 'i' || 'o' || 'u') && s[i+1] == ('a' || 'e' || 'i' || 'o' || 'u'))

它不断给出0作为输出。

编写一个函数。例如:

bool isvowel( char c ) {
    return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}
然后你可以简单地说:

if ( !isvowel( s[i] )  && isvowel( s[i+1] )  )  {
      // do something
} 

编写一个单独的函数,检查给定字符是否为元音。比如说

#include <iostream>
#include <string>
#include <cstring>
#include <cctype>

bool is_vowel( char c )
{
    const char *vowels = "aeiou";

    return c != '\0' && std::strchr( vowels, std::tolower( ( unsigned char )c ) );
}

int main( void )
{
    std::string s( "Hi" );

    if ( not is_vowel( s[0] ) && is_vowel( s[1] ) ) std::cout << s << '\n';
}

你可以声明一个包含所有元音的字符串和另一个包含辅音的字符串,然后使用标准的C函数strchr。谢谢。肯定是非常有帮助的。但是你能告诉我我是否想用我原始代码中使用的If语句来实现它吗?我只是想澄清我的概念。提前谢谢。
Hi