Namespaces
Variants
Views
Actions

std::basic_string<CharT,Traits,Allocator>::contains

From cppreference.com
< cpp‎ | string‎ | basic string
Revision as of 09:53, 14 November 2022 by Space Mission (Talk | contribs)

 
 
 
std::basic_string
Member functions
Element access
Iterators
Capacity
Modifiers
Search
Operations
basic_string::contains
(C++23)
Constants
Non-member functions
I/O
Comparison
(until C++20)(until C++20)(until C++20)(until C++20)(until C++20)(C++20)
Numeric conversions
(C++11)(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Literals
Helper classes
Deduction guides (C++17)

 
constexpr bool contains( std::basic_string_view<CharT,Traits> sv )
    const noexcept;
(1) (since C++23)
constexpr bool contains( CharT c ) const noexcept;
(2) (since C++23)
constexpr bool contains( const CharT* s ) const;
(3) (since C++23)

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 c.
3) a null-terminated character string s.

All three overloads are equivalent to return find(x) != npos;, where x is the parameter.

Contents

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 contains the provided substring, false otherwise.

Notes

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

Example

#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

checks if the string starts with the given prefix
(public member function) [edit]
(C++20)
checks if the string ends with the given suffix
(public member function) [edit]
finds the first occurrence of the given substring
(public member function) [edit]
returns a substring
(public member function) [edit]
(C++23)
checks if the string view contains the given substring or character
(public member function of std::basic_string_view<CharT,Traits>) [edit]