std::basic_string::starts_with(3)

NAME
std::basic_string::starts_with - std::basic_string::starts_with

Synopsis
   constexpr bool starts_with( std::basic_string_view<CharT,Traits>
   sv ) (1) (since C++20)
   const noexcept;
   constexpr bool starts_with( CharT c ) const noexcept; (2) (since C++20)
   constexpr bool starts_with( const CharT* s ) const; (3) (since C++20)
   Checks if the string begins with the given prefix. The prefix may be one of the
   following:
   1) a string view sv (which may be a result of implicit conversion from another
   std::basic_string).
   2) a single character c.
   3) a null-terminated character string s.
   All three overloads effectively return std::basic_string_view<CharT, Traits>(data(),
   size()).starts_with(x), where x is the parameter.

Parameters
   sv - a string view which may be a result of implicit conversion from another
        std::basic_string
   c - a single character
   s - a null-terminated character string

Return value
   true if the string begins with the provided prefix, false otherwise.

Notes
   Feature-test macro: __cpp_lib_starts_ends_with

Example
// Run this code
 #include <iostream>
 #include <string_view>
 #include <string>
 template <typename PrefixType>
 void test_prefix_print(const std::string& str, PrefixType prefix)
 {
     std::cout << '\'' << str << "' starts with '" << prefix << "': " <<
         str.starts_with(prefix) << '\n';
 }
 int main()
 {
     std::boolalpha(std::cout);
     auto helloWorld = std::string("hello world");
     test_prefix_print(helloWorld, std::string_view("hello"));
     test_prefix_print(helloWorld, std::string_view("goodbye"));
     test_prefix_print(helloWorld, 'h');
     test_prefix_print(helloWorld, 'x');
 }

Output:
 'hello world' starts with 'hello': true
 'hello world' starts with 'goodbye': false
 'hello world' starts with 'h': true
 'hello world' starts with 'x': false

See also
   ends_with checks if the string ends with the given suffix
   (C++20) (public member function)
   starts_with checks if the string view starts with the given prefix
   (C++20) (public member function of std::basic_string_view<CharT,Traits>)
   ends_with checks if the string view ends with the given suffix
   (C++20) (public member function of std::basic_string_view<CharT,Traits>)
   contains checks if the string contains the given substring or character
   (C++23) (public member function)
   contains checks if the string view contains the given substring or character
   (C++23) (public member function of std::basic_string_view<CharT,Traits>)
   compare compares two strings
               (public member function)
   substr returns a substring
               (public member function)