std::basic_string<CharT,Traits,Allocator>::contains
Von cppreference.com
< cpp | string | 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 der String den gegebenen Substring enthält. Der Substring kann einer der folgenden sein:
1) Ein String-View sv (der das Ergebnis einer impliziten Konvertierung von einem anderen
std::basic_string sein kann).2) Ein einzelnes Zeichen ch.
3) Ein null-terminierter Zeichenstring s.
Alle drei Überladungen sind äquivalent zu return find(x) != npos;, wobei x der Parameter ist.
Inhalt |
[bearbeiten] Parameter
| sv | - | Ein String-View, der das Ergebnis einer impliziten Konvertierung aus einem anderen std::basic_string sein kann. |
| ch | - | Ein einzelnes Zeichen. |
| s | - | Ein null-terminierter Zeichenstring. |
[bearbeiten] Rückgabewert
true, wenn der String den bereitgestellten Substring enthält, andernfalls false.
[bearbeiten] Hinweise
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_string_contains |
202011L |
(C++23) | contains-Funktionen |
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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'); }
Ausgabe
"hello world" contains "hello" "hello world" does not contain "goodbye" "hello world" contains 'w' "hello world" does not contain 'x'
[bearbeiten] Siehe auch
| (C++20) |
prüft, ob der String mit dem gegebenen Präfix beginnt (public member function) |
| (C++20) |
prüft, ob der String mit dem gegebenen Suffix endet (public member function) |
| sucht das erste Vorkommen der gegebenen Teilzeichenkette (public member function) | |
| gibt eine Teilzeichenkette zurück (public member function) | |
| (C++23) |
prüft, ob die Zeichenansicht die gegebene Teilzeichenkette oder das gegebene Zeichen enthält (public member function of std::basic_string_view<CharT,Traits>) |