You should change your if
condition. string::find
returns the position of the found string or string::npos
if no string was found. string::find
does not work with true
and false
. true
is converted to 1
. Therefor b.find(subString)== true
is only true if subString
is found at position 1 in b
. You can verify this behavior with
#include <iostream>
#include <string>
int main() {
std::string a = "Text";
if (a.find("Text") == true) std::cout << 1 << std::endl;
if (a.find("ext") == true) std::cout << 2 << std::endl;
if (a.find("xt") == true) std::cout << 3 << std::endl;
if (a.find("t") == true) std::cout << 4 << std::endl;
return 0;
}
Output is 2
Try
b.find(subString) != b.npos
to fix your problem.
6
solved Return the longest common Substring Function c ++