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) (desde C++23)
constexpr bool
contains ( CharT ch ) const noexcept ;
(2) (desde C++23)
constexpr bool
contains ( const CharT * s ) const ;
(3) (desde C++23)

Comprueba si la cadena contiene la subcadena dada. La subcadena puede ser una de las siguientes:

1) Una vista de cadena sv (que puede ser el resultado de una conversión implícita de otra std::basic_string ).
2) Un solo carácter ch .
3) Una cadena de caracteres terminada en nulo s .

Las tres sobrecargas son equivalentes a return find ( x ) ! = npos ; , donde x es el parámetro.

Contenidos

Parámetros

sv - una vista de cadena que puede ser el resultado de una conversión implícita de otro std::basic_string
ch - un carácter individual
s - una cadena de caracteres terminada en nulo

Valor de retorno

true si la cadena contiene la subcadena proporcionada, false en caso contrario.

Notas

Macro de prueba de características Valor Estándar Característica
__cpp_lib_string_contains 202011L (C++23) contains funciones

Ejemplo

#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');
}

Salida:

"hello world" contains "hello"
"hello world" does not contain "goodbye"
"hello world" contains 'w'
"hello world" does not contain 'x'

Véase también

comprueba si la cadena comienza con el prefijo dado
(función miembro pública)
(C++20)
comprueba si la cadena termina con el sufijo dado
(función miembro pública)
encuentra la primera ocurrencia de la subcadena dada
(función miembro pública)
devuelve una subcadena
(función miembro pública)
(C++23)
comprueba si la vista de cadena contiene la subcadena o carácter dado
(función miembro pública de std::basic_string_view<CharT,Traits> )