how to check string start in C++
Is there any way in C++ to check whether a string starts with a certain string (smaller than the original) ? Just like we can do in Java
bigString.startswith(smallString);
Solution 1:
std::string s("Hello world");
if (s.find("Hello") == 0)
{
std::cout << "String starts with Hello\n";
}
Solution 2:
You can do this with string::compare()
, which offers various options for comparing all or parts of two strings. This version compares smallString
with the appropriate size prefix of bigString
(and works correctly if bigString
is shorter than smallString
):
bigString.compare(0, smallString.length(), smallString) == 0
I tend to wrap this up in a free function called startsWith()
, since otherwise it can look a bit mysterious.
UPDATE: C++20 is adding new starts_with
and ends_with
functions, so you will finally be able to write just bigString.starts_with(smallString)
.