if((tempTitle.find(tempTitleFind)))
{
blah blah
}
部分一致の場合、部分一致のものだけでなくすべてが出力されます。ここで引数が間違っていますか?? 何度も何度も見直したのですが、見つからないようです。ここで何が間違っていますか?
std::string::find
std::string::npos
見つからない場合は返され、-1 になります。0 以外は boolean と同等であるtrue
ため、「誤検知」が発生します。条件を次のように変更します。
if(tempTitle.find(tempTitleFind) != std::string::npos)
tempTitle.find(tempTitleFind) は、tempTitle 内の tempTitleFind の位置、または tempTitleFind が tempTitle にない場合は std::string::npos を返します。
tempTitleFind が tempTitle 内で発生するかどうかを判断するには、次のスニペットを使用できます。
if(tempTitle.find(tempTitleFind)!=std::string::npos)
{
...
}
ところで:ループ内ではなく、ループの前にtitleFind を小文字に変換する必要があります。