C++ 查找并比较两个字符串中的字符

C++ 查找并比较两个字符串中的字符,c++,C++,如果不合法,则此。是否可以检查var1中的前3个字符是否在字母中 // if (var1.substr (0, 2) == alphaLetter[i]) int main() { std::string const alphaLetter=“ABCDEFGHIJKLMNOPRSTVUYWQZX”; std::string var1=“”; std::cout>var1; 对于(int i=0;i='A'&&cif(var1.substr(0,2)=字母[i]) 这是非法的,因为您试图比较

如果不合法,则此
。是否可以检查
var1
中的前3个字符是否在
字母中

// if (var1.substr (0, 2) == alphaLetter[i]) 
int main()
{
std::string const alphaLetter=“ABCDEFGHIJKLMNOPRSTVUYWQZX”;
std::string var1=“”;
std::cout>var1;
对于(int i=0;iif(var1.substr(0,2)=字母[i])
这是非法的,因为您试图比较
std::string
(长度为2)和
char

您可以使用方法()的
find\u first\u not\u:

auto pos=var1.首先查找(字母);
if(pos==std::string::npos | |//表示字母中没有非字母
位置>=3)
{
...
}
另一方面,如果您需要确定字符是否在范围
a..Z
内,则可以检查其代码是否在范围
ord(a)…ord(Z)

autofirstThreeLetters=var1.substr(0,3);
如果(std::all_of(firstThreeLetters.begin(),firstThreeLetters.end(),
[](字符c){
返回c>='A'&&c
if(var1.substr(0,2)=字母[i])
这是非法的,因为您试图比较
std::string
(长度为2)和
char

您可以使用方法()的
find\u first\u not\u:

auto pos=var1.首先查找(字母);
if(pos==std::string::npos | |//表示字母中没有非字母
位置>=3)
{
...
}
另一方面,如果您需要确定字符是否在范围
a..Z
内,则可以检查其代码是否在范围
ord(a)…ord(Z)

autofirstThreeLetters=var1.substr(0,3);
如果(std::all_of(firstThreeLetters.begin(),firstThreeLetters.end(),
[](字符c){

return c>='A'&&c是否正在查找string::find()?您的代码从不使用
n
。是否正在查找string::find()你的代码从不使用
n
。这是一个很好的答案Igor,作为一个初学者,我不知道什么是NPO..但我会用谷歌搜索它。Thx的帮助这是一个很好的答案Igor,作为一个初学者,我不知道什么是NPO..但我会用谷歌搜索它。Thx的帮助
int main ()
{
    std::string const alphaLetter = "ABCDEFGHIJKLMNOPRSTVUYWQZX";

    std::string var1= "";
    std::cout << " Enter 6 characters: ";
    std::cin >> var1;
    for (int i = 0; i < alphaLetter.size (); i++)
    {
        for (int n = 0; n < alphaLetter.size(); n++)
        {
            if (var1.substr (0, 2) == alphaLetter[i])
            {
                std::cout << "True";
            }
        }
    }
}
if (var1.substr(0, 3).find_first_not_of(alphaLetter) == std::string::npos) {
  // The first three characters are all present in alphaLetter
}
auto firstThreeLetters = var1.substr(0, 3);
if (std::all_of(firstThreeLetters.begin(), firstThreeLetters.end(),
    [](char c) {
        return c >= 'A' && c <= 'Z';
    })
{
    ...
}