我对此代码有疑问,我试图验证字母是否在单词中,但由于某些原因,它不允许我放==
。
#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;
}
答案 0 :(得分:4)
a
是一个字符串,b
是一个字符串
a[i]
是char
。您将char
与string
进行比较 - 显然,它不起作用。
如果您想检查句子(即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
,它可以帮助您找到string
或char
在另一个string
中出现的情况
您可以使用以下代码替换代码:
#include <string>
#include <iostream>
using namespace std;
bool Verification(string a, char b)
{
return a.find(b) != string::npos;
}