std::basic_string<CharT,Traits,Allocator>::contains
From cppreference.com
 
 
 < cpp | string | basic string 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
std::basic_string 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
Literals   
 
Helper classes   
 
Deduction guides (C++17)  
(C++23)
  (DR*)
(DR*)
(C++23)
(DR*)
(C++23)
(C++23)
(C++20)
(C++20)
basic_string::contains
(C++23)
(C++20)(C++20)
(until C++20)(until C++20)(until C++20)(until C++20)(until C++20)(C++20)
(C++11)(C++11)(C++11)
(C++11)(C++11)
 (C++14)
(C++11)
constexpr bool
contains( std::basic_string_view <CharT,Traits> sv ) const noexcept;
 (1) 
 (since C++23) 
contains( std::basic_string_view <CharT,Traits> sv ) const noexcept;
constexpr bool
contains( CharT ch ) const noexcept;
 (2) 
 (since C++23) 
contains( CharT ch ) const noexcept;
constexpr bool
contains( const CharT* s ) const;
 (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.
Contents
[edit] 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
[edit] Return value
true if the string contains the provided substring, false otherwise.
[edit] Notes
| Feature-test macro | Value | Std | Feature | 
|---|---|---|---|
__cpp_lib_string_contains  | 
202011L  | 
(C++23) | contains functions
 | 
[edit] 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'