Cadenas de Texto de C++
La clase basic_string provee una interface genérica y útil para almacenar secuencias de caracteres ("cadenas"). Estas interfaces proveen la funcionalidad básica para la manipulación de texto en C++.
basic_string está definido como una plantilla en la cabecera <string>:
template <typename charT, typename Traits = char_traits<charT>, typename Allocator = allocator<charT> > class basic_string;
En esta definición, charT se refiere al **tipo de caracteres subyacente**, que representa un elemento (letra).
Para el uso cotidiano se declaran dos especializaciones de basic_string:
typedef basic_string<char> string; typedef basic_string<wchar_t> wstring;
La próxima versión del estándar, C++11, declarará además dos nuevas especializaciones para el uso de cadenas de texto en [[cpp/string/basic_string/wp>Unicode | wp>Unicode]]:
typedef basic_string<char16_t> u16string; typedef basic_string<char32_t> u32string;
[editar] Interface
Para una mejor generalización, en las secciones siguientes se referirá como string a una especialización cualquiera de basic_string, con tipo de caracteres charT.
| Constructores | cómo crear cadenas desde arrays o series de caracteres |
| Operadores | notación para asignar, concatenar, comparar, leer y escribir cadenas |
| append | agregar caracteres o cadenas enteras a una cadena |
| assign | asignar un valor específico desde caracteres o cadenas de C++ |
| at | devolver un caracter en una posición |
| begin | devolver un iterador al inicio de una cadena |
| c_str | devolver una representación no modificable de una cadena como una cadena clásica de C |
| capacity | devolver la cantidad de caracteres que la cadena puede almacenar |
| clear | eliminar todos los caracteres |
| compare | comparar dos cadenas |
| copy | copiar caracteres de una cadena a un array |
| data | devolver un puntero a los datos internos de una cadena |
| empty | determinar si la cadena está vacía |
| end | devolver un iterador al final de una cadena |
| erase | eliminar caracteres de una cadena |
| find | buscar caracteres en una cadena |
| find_first_not_of | encontrar la primera ausencia de caracteres |
| find_first_of | encontrar la primera ocurrencia de caracteres |
| find_last_not_of | encontrar la última ausencia de caracteres |
| find_last_of | encontrar la última ocurrencia de caracteres |
| getline | leer datos desde un flujo de E/S a una cadena((función no miembro)) |
| insert | insertar caracteres en una cadena |
| length | devolver el largo de una cadena |
| max_size | devolver el máximo número de caracteres que la cadena puede almacenar |
| npos | un valor especial para indicar un "caracter no encontrado" o "todos los caracteres restantes" |
| push_back | agrega un caracter al final de una cadena |
| rbegin | devuelve un iterador_reverso al final de una cadena |
| rend | devuelve un iterador_reverso al inicio de una cadena |
| replace | reemplaza caracteres en una cadena |
| reserve | reserva espacio mínimo en una cadena |
| resize | cambia el tamaño de una cadena |
| rfind | encuentra la última ocurrencia de una subcadena |
| size | devuelve el número de caracteres en una cadena |
| substr | devuelve una subcadena específica |
| swap | intercambia los contenidos con otra cadena |