Namespaces
Variants

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

From cppreference.net
std::basic_string
constexpr bool
contains ( std:: basic_string_view < CharT,Traits > sv ) const noexcept ;
(1) (seit C++23)
constexpr bool
contains ( CharT ch ) const noexcept ;
(2) (seit C++23)
constexpr bool
contains ( const CharT * s ) const ;
(3) (seit C++23)

Prüft, ob die Zeichenkette die angegebene Teilzeichenkette enthält. Die Teilzeichenkette kann eines der folgenden sein:

1) Ein String-View sv (der durch implizite Konvertierung von einem anderen std::basic_string entstanden sein kann).
2) Ein einzelnes Zeichen ch .
3) Eine nullterminierte Zeichenkette s .

Alle drei Überladungen sind äquivalent zu return find ( x ) ! = npos ; , wobei x der Parameter ist.

Inhaltsverzeichnis

Parameter

sv - ein String-View, der durch implizite Konvertierung von einem anderen std::basic_string resultieren kann
ch - ein einzelnes Zeichen
s - eine nullterminierte Zeichenkette

Rückgabewert

true falls der String die angegebene Teilzeichenkette enthält, false andernfalls.

Hinweise

Feature-Test Makro Wert Std Funktion
__cpp_lib_string_contains 202011L (C++23) contains Funktionen

Beispiel

#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) ? " enthält "
                                     : " enthält nicht ")
              << 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');
}

Ausgabe:

"hello world" enthält "hello"
"hello world" enthält nicht "goodbye"
"hello world" enthält 'w'
"hello world" enthält nicht 'x'

Siehe auch

prüft, ob der String mit dem angegebenen Präfix beginnt
(öffentliche Elementfunktion)
(C++20)
prüft, ob der String mit dem angegebenen Suffix endet
(öffentliche Elementfunktion)
findet das erste Vorkommen der angegebenen Teilzeichenkette
(öffentliche Elementfunktion)
gibt eine Teilzeichenkette zurück
(öffentliche Elementfunktion)
(C++23)
prüft, ob die String-Ansicht die angegebene Teilzeichenkette oder das Zeichen enthält
(öffentliche Elementfunktion von std::basic_string_view<CharT,Traits> )