没有操作员" =="匹配这些操作数字符串

时间:2015-10-23 04:14:43

标签: c++

我对此代码有疑问,我试图验证字母是否在单词中,但由于某些原因,它不允许我放==

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

bool Verification(string a, string b)
{
    bool VF = false;
    for (int i = 0; i < a.size(); i++)
    {
        if (a[i] == b) //Here is the problem
        {
            VF = true;
        }

    }
    return VF;
}

1 个答案:

答案 0 :(得分:4)

a是一个字符串,b是一个字符串 a[i]char。您将charstring进行比较 - 显然,它不起作用。

如果您想检查句子(即char)中是否存在字母(即string),您可以实施以这种方式运作:

bool Verification(string a, char b) // <-- notice: b is char
{
    bool VF = false;
    for (int i = 0; i < a.size(); i++)
    {
        if (a[i] == b) 
        {
            VF = true;
        }
    }
    return VF;
}    

// Usage:
Verification("abc", 'a'); // <-- notice: quotes are double for string and single for char

实际上,有一种方法 string::find ,它可以帮助您找到stringchar在另一个string中出现的情况 您可以使用以下代码替换代码:

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

bool Verification(string a, char b)
{
    return a.find(b) != string::npos;
}