std::basic_string::contains(3)

NAME
std::basic_string::contains - std::basic_string::contains

Synopsis
   constexpr bool
       contains( std::basic_string_view<CharT,Traits> sv ) const (1) (since C++23)
   noexcept;
   constexpr bool (2) (since C++23)
       contains( CharT ch ) const noexcept;
   constexpr bool (3) (since C++23)
       contains( const CharT* s ) const;
   Checks if the string contains the given substring. The substring 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 ch.
   3) A null-terminated character string s.
   All three overloads are equivalent to return find(x) != npos;, where x is the
   parameter.

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

Return value
   true if the string contains the provided substring, false otherwise.

Notes
      Feature-test macro Value Std Feature
   __cpp_lib_string_contains 202011L (C++23) contains functions

Example
// Run this code
 #include <iomanip>
 #include <iostream>
 #include <string>
 #include <string_view>
 #include <type_traits>
 template<typename SubstrType>
 void test_substring(const std::string& str, SubstrType subs)
 {
     constexpr char delim = std::is_scalar_v<SubstrType> ? '\'' : '\"';
     std::cout << std::quoted(str)
               << (str.contains(subs) ? " contains "
                        : " does not contain ")
               << std::quoted(std::string{subs}, delim) << '\n';
 }
 int main()
 {
     using namespace std::literals;
     auto helloWorld = "hello world"s;
     test_substring(helloWorld, "hello"sv);
     test_substring(helloWorld, "goodbye"sv);
     test_substring(helloWorld, 'w');
     test_substring(helloWorld, 'x');
 }

Output:
 "hello world" contains "hello"
 "hello world" does not contain "goodbye"
 "hello world" contains 'w'
 "hello world" does not contain 'x'

See also
   starts_with checks if the string starts with the given prefix
   (C++20) (public member function)
   ends_with checks if the string ends with the given suffix
   (C++20) (public member function)
   find finds the first occurrence of the given substring
               (public member function)
   substr returns a substring
               (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>)