std::basic_string::c_str
const CharT* c_str() const; |
(hasta C++11) | |
const CharT* c_str() const noexcept; |
(desde C++11) (hasta C++20) |
|
constexpr const CharT* c_str() const noexcept; |
(desde C++20) | |
Devuelve un puntero a un array de caracteres terminado en nulo con datos equivalentes a aquellos almacenados en la cadena.
El puntero es tal que el rango [c_str(); c_str() + size()] es válido y los valores en él corresponden con los valores almacenados en la cadena con el carácter nulo adicional después de la última posición.
El puntero devuelto por c_str() puede invalidarse si:
- Se pasa una referencia no
consta la cadena a cualquier función de la biblioteca estándar, o; - Se llama a funciones miembro no
consten la cadena, excluyendo a operator[], at(), front(), back(), begin(), rbegin(), end() y rend().
Escribir al array de caracteres accedido a través de c_str() es comportamiento indefinido.
|
|
(desde C++11) |
Parámetros
(Ninguno)
Valor de retorno
Un puntero al almacenamiento de caracteres subyacente.
|
|
(hasta C++11) |
|
|
(desde C++11) |
Complejidad
Constante.
Notas
El puntero obtenido de c_str() puede tratarse solamente como un puntero a una cadena de caracteres terminada en nulo si el objeto de la cadena no contiene otros caracteres nulos.
Ejemplo
#include <algorithm>
#include <cassert>
#include <cstring>
#include <string>
int main()
{
std::string const s("Emplar");
assert(s.size() == std::strlen(s.c_str()));
assert(std::equal(s.begin(), s.end(), s.c_str()));
assert(std::equal(s.c_str(), s.c_str() + s.size(), s.begin()));
assert(0 == *(s.c_str() + s.size()));
}
Véase también
(C++11) |
Accede al primer carácter (función miembro pública) |
(C++11) |
Accede al último carácter (función miembro pública) |
| Devuelve un puntero al primer carácter de una cadena (función miembro pública) |