std::basic_string::find_last_of - cppreference.com
De cppreference.com
</tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody>
| (1) | ||
|
|
(hasta C++11) | |
|
|
(desde C++11) (hasta C++20) |
|
| (2) | ||
|
|
(hasta C++11) | |
|
|
(desde C++11) | |
| (3) | ||
|
|
(hasta C++20) | |
|
|
(desde C++20) | |
| (4) | ||
|
|
(hasta C++11) | |
|
|
(desde C++11) (hasta C++20) |
|
|
|
(desde C++20) | |
| (5) | ||
|
|
(desde C++17) (hasta C++20) |
|
|
|
(desde C++20) | |
Encuentra el último carácter igual a uno de los caracteres en la secuencia de caracteres dada. No se especifica el algoritmo de búsqueda exacto. La búsqueda considera solamente el intervalo [0, pos]. Si el carácter no está presente en el intervalo, se devuelve npos.
1) Encuentra el último carácter igual a uno de los caracteres en str.
2) Encuentra el último carácter igual a uno de los caracteres en el rango [s, s+count). Este rango puede contener caracteres nulos.
3) Encuentra el último carácter igual a uno de los caracteres en la cadena de caracteres a la que apunta s. La longitud de la cadena se determina por el primer carácter nulo usando Traits::length(s).
4) Encuentra el último carácter igual a ch.
5) Implícitamente convierte t a una vista sobre cadena sv como si fuera mediante std::basic_string_view<CharT, Traits> sv = t;, entonces encuentra el último carácter igual a uno de los caracteres en sv. Esta sobrecarga solo participa en la resolución de sobrecargas si std::is_convertible_v<const T&, std::basic_string_view<CharT, Traits>> es true y std::is_convertible_v<const T&, const CharT*> es false.
En todos los casos, se comprueba la igualdad llamando a Traits::eq.
Parámetros
| str | - | La cadena que identifica los caracteres a buscar. |
| pos | - | La posición en la cual iniciar la búsqueda. |
| count | - | La longitud de la cadena de caracteres que identifica los caracteres a buscar. |
| s | - | Puntero a la cadena de caracteres que identifica los caracteres a buscar. |
| ch | - | Carácter a buscar. |
| t | - | Objeto (convertible a std::basic_string_view) que identifica los caracteres a buscar. |
Valor de retorno
Posición del primer carácter encontrado o npos si no se encontró dicho carácter.
Excepciones
5)
Especificación
noexcept: (desde C++11)
|
|
||
Ejemplo
#include<string> #include<iostream> int main() { const std::string ruta_de_acceso{"/root/config"}; auto const pos = path.find_last_of('/'); const auto hoja = ruta_de_acceso.substr(pos+1); std::cout << hoja<< '\n'; }
Salida:
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2064 | C++11 | Las sobrecargas (3) y (4) eran noexcept | Se eliminó. |
| LWG 2946 | C++17 | La sobrecarga string_view causa ambigüedad en algunos casos.
|
Se evitó haciéndola una plantilla. |
| P1148R0 | C++11 C++17 |
noexcept para las sobrecargas (4)/(5) fue accidentalmente eliminado por LWG2064/LWG2946 | Se restauró. |