home | help
std::basic_...ng::contains(3)  C++ Standard Libary std::basic_...ng::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 an-
     other
	     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::ba-
     sic_string_view<CharT,Traits>)

http://cppreference.com 	   2024.06.10	   std::basic_...ng::contains(3)

home | help