私が作成した を使用して 2 つの文字列を文字ごとに比較しようとしbool match(string,string)
ています。互いに等しくない 2 つの文字列を入力すると正しく比較され、false が出力されると思います。しかし、ブールをチェックすると、falseが返されませんでした。この動作の理由が思い浮かびません。誰かが私を助けてくれることを願っています。コード:
#include <iostream>
#include <cassert>
#include <cmath>
#include <fstream>
#include <vector>
using namespace std;
bool match(string pattern, string source)
{
if(pattern.size() == 0&& source.size() == 0)
{
return true;
}
else if(pattern[0] == source[0])
{
pattern.erase(0,1);
source.erase(0,1);
match(pattern,source);
}
else
{
cout << "false" << endl;
return false;
}
}
int main()
{
string test1 = "hballo";
string test2 = "hallo";
bool match_found = match(test1,test2);
if(match_found)
{
cout << "match found!"<< endl;
}
else if(!match_found)
{
cout << "match not found!"<< endl;
}
}