Clase wxString
Clase String para pasar datos textuales a o recibirlos de wxWidgets.
Jerarquía:
Nota: Aunque el uso de wxString es inevitable en los programas wxWidgets, se recomienda utilizar las clases de cadena estándar std::string o std::wstring en sus aplicaciones y convertirlas a y desde wxString solo cuando se interactúa con wxWidgets.
wxString es una clase que representa una cadena de caracteres Unicode pero con métodos que toman o devuelven tanto caracteres anchos wchar_t y cadenas anchas wchar_t* como caracteres char tradicionales y cadenas char*. La naturaleza dual de la API wxString hace que sea fácil de usar en todos los casos y, lo que es más importante, permite que el código escrito tanto para ANSI como para Unicode de las versiones anteriores de wxWidgets compile y funcione correctamente con la versión unificada Unicode de wxWidgets 3.0. También es en su mayoría transparente cuando se utiliza wxString con las pocas excepciones que se describen a continuación.
Visión general de la API
wxString intenta ser similar tanto a std::string como a std::wstring y puede usarse mayoritariamente como cualquiera de las dos clases. Proporciona prácticamente todos los métodos de estas clases, que se comportan exactamente igual que en el C++ estándar, por lo que no están documentados aquí (por favor, consultar la documentación de cualquier biblioteca estándar, por ejemplo http://es.cppreference.com/w/cpp/string para más detalles).
Además de estos métodos estándar, wxString añade funciones que se encargan de las conversiones entre diferentes codificaciones de cadenas, descritas a continuación, así como muchos ayudantes extra como funciones para salida formateada (Printf(), Format(), ...), conversión de mayúsculas y minúsculas (MakeUpper(), Capitalize(), ...) y varias otras (Trim(), StartsWith(), Matches(), ...). Todos los métodos no estándar siguen la convención de nomenclatura "CamelCase" de wxWidgets y están documentados aquí.
Obsérvese que algunos métodos de wxString existen en varias versiones por razones de compatibilidad. Por ejemplo, se proporcionan todos los métodos length(), Length() y Len(). En estos casos se recomienda utilizar el método estándar similar a string, es decir, length() en este caso.
Conversión a y desde wxString
wxString se puede crear a partir de:
- Cadena ASCII garantizada para contener solo caracteres de 7 bits utilizando wxString::FromAscii().
- Cadena estrecha char* en la codificación local actual utilizando el constructor implícito wxString::wxString(const char*).
- Cadena estrecha char* en codificación UTF-8 usando wxString::FromUTF8().
- Cadena estrecha char* en la codificación dada usando el constructor wxString::wxString(const char*, const wxMBConv&) pasando un wxCSConv correspondiente a la codificación como segundo argumento.
- std::string estándar utilizando el constructor implícito wxString::wxString(const std::string&). Obsérvese que este constructor supone que la cadena contiene datos en la codificación local actual, utilizar FromUTF8() o el constructor que toma wxMBConv si no es el caso.
- Cadena wchar_t* ancha usando el constructor implícito wxString::wxString(const wchar_t*).
- Cadena estándar std::wstring usando el constructor implícito wxString::wxString(const std::wstring&).
Observar que muchos de los constructores son implícitos, lo que significa que no se necesita escribirlos para pasar la cadena existente a alguna función de wxWidgets que tome una wxString.
Del mismo modo, wxString se puede convertir a:
- Cadena ASCII usando wxString::ToAscii(). Esta es una operación potencialmente destructiva ya que todos los caracteres de cadena no ASCII son reemplazados por un carácter marcador de posición.
- Cadena en la codificación local actual implícitamente o utilizando los métodos c_str() o mb_str(). Se trata de una operación potencialmente destructiva, ya que se devuelve una cadena vacía si la conversión falla.
- Cadena en codificación UTF-8 utilizando wxString::utf8_str().
- Cadena en cualquier codificación utilizando mb_str() con el objeto wxMBConv apropiado. Esta es también una operación potencialmente destructiva.
- Cadena estándar std::string utilizando wxString::ToStdString(). La codificación de la cadena devuelta se especifica con un objeto wxMBConv, por lo que esta conversión también es potencialmente destructiva. Para asegurarse de que no hay pérdida de datos, utilizar la conversión wxConvUTF8 o wxString::utf8_string().
- Cadena C ancha usando wxString::wc_str().
- Cadena estándar std::wstring usando wxString::ToStdWstring().
Nota: Si se ha construido wxWidgets con wxUSE_STL a 1, las conversiones implícitas a cadenas C estrechas y anchas están desactivadas y reemplazadas por conversiones implícitas a std::string y std::wstring.
Hay que tener en cuenta que las conversiones marcadas anteriormente como "potencialmente destructivas" pueden provocar la pérdida de datos si no se comprueba su resultado, por lo que debe verificar que la conversión del contenido de una cadena Unicode no vacía a una codificación multibyte no UTF-8 da como resultado una cadena no vacía. La forma más sencilla y mejor de asegurarse de que la conversión nunca falla es utilizar siempre UTF-8.
Trampas para incautos
Como se mencionó anteriormente, wxString intenta ser compatible con las clases de cadenas estándar tanto estrechas como anchas y en su mayoría lo hace de forma transparente, pero hay algunas excepciones.
Acceso a elementos de cadena
Algunos problemas son causados por wxString::operator[]() que devuelve un objeto de una clase proxy especial que permite asignar un simple char o un wchar_t al índice dado. Debido a esto, el tipo de retorno de este operador no es ni char ni wchar_t ni una referencia a uno de estos tipos sino wxUniCharRef que no es un tipo primitivo y por lo tanto no se puede utilizar en la sentencia switch. Así que el siguiente código no compila:
wxString s(...); switch ( s[n] ) { case 'A': ... break; }
Y en su lugar es necesario usar:
switch ( s[n].GetValue() ) { ... }
Como alternativa, puede utilizar un reparto explícito:
switch ( static_cast<char>(s[n]) ) { ... }
Pero hay que tener en cuenta que esto resultará en un fallo de aserción si el carácter en la posición dada no es representable como un único carácter en la codificación actual, por lo que puede que quiera convertir a int en su lugar si se pueden utilizar valores no ASCII.
Otra consecuencia de este tipo de retorno inusual surge cuando se utiliza con la deducción de plantilla o la palabra clave auto de C++11. A diferencia de las referencias normales que se deducen del tipo referenciado, el tipo deducido para wxUniCharRef es el propio wxUniCharRef. Esto resulta en un comportamiento potencialmente inesperado, por ejemplo:
wxString s("abc"); auto c = s[0]; c = 'x'; // Modifies the string! wxASSERT( s == "xbc" );
Debido a esto, o bien especificar explícitamente el tipo de variable:
int c = s[0]; c = 'x'; // Doesn't modify the string any more. wxASSERT( s == "abc" );
O convertir explícitamente el valor de retorno:
auto c = s[0].GetValue(); c = 'x'; // Doesn't modify the string either. wxASSERT( s == "abc" );
Conversión a cadena C
Una clase diferente de problemas ocurre debido a la naturaleza dual del valor de retorno del método wxString::c_str(), que también se utiliza para conversiones implícitas. El resultado de las llamadas a este método es convertible a cadena narrow char* o cadena wide wchar_t* y, de nuevo, no tiene ni el primer tipo ni el segundo. Normalmente, se elegirá el tipo correcto dependiendo de cómo se utilice el resultado, pero a veces el compilador no puede elegirlo debido a una ambigüedad, por ejemplo:
// Some non-wxWidgets functions existing for both narrow and wide // strings: void dump_text(const char* text); // Version (1) void dump_text(const wchar_t* text); // Version (2) wxString s(...); dump_text(s); // ERROR: ambiguity. dump_text(s.c_str()); // ERROR: still ambiguous.
En este caso es necesario convertir explícitamente al tipo que se necesita utilizar o utilizar una función de conversión diferente, no ambigua (que suele ser la mejor opción):
dump_text(static_cast<const char*>(s)); // OK, calls (1) dump_text(static_cast<const wchar_t*>(s.c_str())); // OK, calls (2) dump_text(s.mb_str()); // OK, calls (1) dump_text(s.wc_str()); // OK, calls (2) dump_text(s.wx_str()); // OK, calls ???
Uso de wxString con funciones vararg
Una subclase especial de los problemas que surgen debido a la naturaleza polimórfica del tipo de resultado de wxString::c_str() ocurre cuando se utilizan funciones que toman un número arbitrario de argumentos, como la estándar printf(). Debido a las reglas del lenguaje C++, los tipos de los argumentos "variables" de dichas funciones no están especificados y, por tanto, el compilador no puede convertir automáticamente los objetos wxString, o los objetos devueltos por wxString::c_str(), a estos tipos desconocidos. Por lo tanto, ni los objetos wxString ni los resultados de la mayoría de las funciones de conversión pueden pasarse como argumentos vararg:
// ALL EXAMPLES HERE DO NOT WORK, DO NOT USE THEM! printf("Don't do this: %s", s); printf("Don't do that: %s", s.c_str()); printf("Nor even this: %s", s.mb_str()); wprintf("And even not always this: %s", s.wc_str());
En su lugar, es necesario realizar una conversión explícita al tipo necesario:
// These examples work but are not the best solution, see below. printf("You can do this: %s", static_cast<const char*>(s)); printf("Or this: %s", static_cast<const char*>(s.c_str())); printf("And this: %s", static_cast<const char*>(s.mb_str())); wprintf("Or this: %s", static_cast<const wchar_t*>(s.wc_str()));
Pero una mejor solución es usar funciones proporcionadas por wxString, si es posible, como es el caso de la familia de funciones printf:
// This is the recommended way. wxPrintf("You can do just this: %s", s); wxPrintf("And this (but it is redundant): %s", s.c_str()); wxPrintf("And this (not using Unicode): %s", s.mb_str()); wxPrintf("And this (always Unicode): %s", s.wc_str());
Obsérvese que wxPrintf() reemplaza tanto a printf() como a wprintf() y acepta objetos wxString, resultados de llamadas a c_str() pero también cadenas char* y wchar_t* directamente.
wxWidgets proporciona equivalentes prefijados por wx para todas las funciones vararg estándar y algunas más, en particular wxString::Format(), wxLogMessage(), wxLogError() y otras funciones de registro. Pero si no se pueden usar una de esas funciones y se necesita pasar objetos wxString a funciones vararg que no sean wx, se necesitará usar los cast explícitos explicados anteriormente.
Características de rendimiento
wxString utiliza std::basic_string internamente para almacenar su contenido (a menos que esto no sea soportado por el compilador o desactivado específicamente al construir wxWidgets) y por lo tanto hereda muchas características de std::basic_string. En particular, la mayoría de las implementaciones modernas de std::basic_string son seguras para los hilos y no utilizan el conteo de referencias (lo que hace que copiar cadenas grandes sea potencialmente caro), por lo que wxString tiene las mismas características.
Por defecto, wxString utiliza std::basic_string especializado para el tipo wchar_t dependiente de la plataforma, lo que significa que no es eficiente en memoria para cadenas ASCII, especialmente en plataformas Unix donde cada carácter ASCII, que normalmente cabe en un byte, está representado por un wchar_t de 4 bytes.
Es posible construir wxWidgets con wxUSE_UNICODE_UTF8 a 1 en cuyo caso una representación de cadena codificada en UTF-8 se almacena en std::basic_string especializado para char, es decir, el habitual std::string. En este caso, el problema de eficiencia de memoria mencionado anteriormente no se plantea, pero el rendimiento en tiempo de ejecución de muchos métodos de wxString cambia drásticamente, en particular, acceder al carácter N-ésimo de la cadena se convierte en una operación que toma O(N) tiempo en lugar de O(1), es decir, constante, tiempo por defecto. Por lo tanto, si utiliza esta construcción llamada UTF-8, debe evitar el uso de índices para acceder a las cadenas siempre que sea posible y utilizar los iteradores en su lugar. Por ejemplo, recorrer la cadena usando iteradores es una operación O(N), donde N es la longitud de la cadena, tanto en la versión normal ("wchar_t") como en UTF-8, pero hacerlo usando índices se convierte en O(N^2) en el caso de UTF-8, lo que significa que simplemente comprobar cada carácter de una cadena razonablemente larga (por ejemplo, un par de millones de elementos) puede llevar un tiempo excesivamente largo.
Sin embargo, si se usan iteradores, la compilación UTF-8 puede ser una mejor opción que la compilación por defecto, especialmente para los sistemas embebidos con memoria limitada. Hay que tener en cuenta también que GTK+ y DirectFB utilizan UTF-8 internamente, por lo que el uso de esta construcción no solo ahorra memoria para cadenas ASCII, sino que también evita conversiones entre wxWidgets y el conjunto de herramientas subyacente.
Tipos
Tipos usados con wxString.
char_type
typedef wxUniChar wxString::char_type
const_pointer
typedef const wxChar* wxString::const_pointer
const_reference
typedef wxUniChar wxString::const_reference
pointer
typedef wxChar* wxString::pointer
reference
typedef wxUniCharRef wxString::reference
size_type
typedef size_t wxString::size_type
value_type
typedef wxUniChar wxString::value_type
Funciones miembro
wxString()
wxString::wxString()
Constructor por defecto.
wxString()
wxString::wxString(const wxString & stringSrc)
Crea una cadena a partir de otra cadena.
Solo incrementa la cuenta ref en 1.
wxString()
wxString::wxString( wxUniChar ch, size_t nRepeat = 1 )
Construye una cadena formada por nRepeat copias de ch.
wxString()
wxString::wxString( wxUniChar ch, size_t nRepeat = 1 )
Construye una cadena formada por nRepeat copias de ch.
wxString()
wxString::wxString( char ch, size_t nRepeat = 1 )
Construye una cadena formada por nRepeat copias de chconvertidas a Unicode utilizando la codificación regional actual.
wxString()
wxString::wxString( wchar_t ch, size_t nRepeat = 1 )
Construye una cadena formada por nRepeat copias de ch.
wxString()
wxString::wxString(const char * psz)
Construye una cadena a partir de la cadena literal psz utilizando la codificación regional actual para convertirla a Unicode (wxConvLibc).
wxString()
wxString::wxString( const char * psz, const wxMBConv & conv )
Construye una cadena a partir de la cadena literal psz utilizando conv para convertirla a Unicode.
wxString()
wxString::wxString( const char * psz, size_t nLength )
Construye una cadena a partir de los primeros nLength bytes de la cadena literal psz utilizando la codificación regional actual para convertirla a Unicode (wxConvLibc).
wxString()
wxString::wxString( const char * psz, const wxMBConv & conv, size_t nLength )
Construye una cadena a partir de los primeros nLength bytes de la cadena literal psz usando conv para convertirla Unicode.
wxString()
wxString::wxString(const wchar_t * pwz)
Construye una cadena a partir de la cadena literal pwz.
wxString()
wxString::wxString( const wchar_t * pwz, size_t nLength )
Construye una cadena a partir de los primeros caracteres de nLength de la cadena literal pwz.
wxString()
wxString::wxString(const wxCharBuffer & buf)
Construye una cadena a partir de buf utilizando la codificación regional actual para convertirla a Unicode.
wxString()
wxString::wxString(const wxWCharBuffer & buf)
Construye una cadena a partir de buf.
wxString()
wxString::wxString(const std::string & str)
Construye una cadena a partir de str utilizando la codificación local actual para convertirla a Unicode (wxConvLibc).
wxString()
wxString::wxString(const std::wstring & str)
Construye una cadena a partir de str.
~wxString()
wxString::~wxString()
Destructor de cadena.
Hay que tener en cuenta que esto no es virtual, por lo que wxString no debe ser heredado.
AfterFirst()
wxString wxString::AfterFirst(wxUniChar ch) const
Obtiene todos los caracteres después de la primera aparición de ch.
Devuelve la cadena vacía si no se encuentra ch.
AfterLast()
wxString wxString::AfterLast (wxUniChar ch) const
Obtiene todos los caracteres después de la última aparición de ch.
Devuelve la cadena completa si no se encuentra ch.
Alloc()
bool wxString::Alloc(size_t nLen)
Preasigna suficiente espacio para que wxString almacene nLen caracteres.
hay que tener en cuenta que este método hace lo mismo que el estándar reserve() y no debería usarse en código nuevo.
Esta función puede usarse para aumentar la velocidad cuando la cadena se construye por concatenación repetida como en
// delete all vowels from the string wxString DeleteAllVowels(const wxString& original) { wxString result; size_t len = original.length(); result.Alloc(len); for ( size_t n = 0; n < len; n++ ) { if ( strchr("aeuio", tolower(original[n])) == NULL ) result += original[n]; } return result; }
porque evitará la necesidad de reasignar la memoria de cadenas muchas veces (en caso de cadenas largas). Hay que tener en cuenta que no establece la longitud máxima de una cadena - seguirá expandiéndose si se almacenan en ella más caracteres que nLen. Además, no trunca la cadena existente (utilizar Truncate() para ello) incluso si su longitud actual es mayor que nLen.
Valor de retorno
true si la memoria fue asignada con éxito, false en caso contrario.
Append()
wxString& wxString::Append(const char * psz)
Añade la cadena literal psz.
Append()
wxString& wxString::Append( const char * psz, size_t nLen )
Añade la cadena literal psz con longitud máxima nLen.
Append()
wxString& wxString::Append(const wchar_t * pwz)
Añade la cadena literal psz.
Append()
wxString& wxString::Append( const wchar_t * pwz, size_t nLen )
Añade la cadena literal psz con longitud máxima nLen.
Append()
wxString& wxString::Append(const wxString & s)
Añade la cadena s.
Append()
wxString& wxString::Append( wxUniChar ch, size_t count = 1u )
Añade el número count de caracteres ch.
append()
wxString& wxString::append( const char * sz, size_t n )
Equivalente a la versión de std::string::append.
append()
wxString& wxString::append( const wchar_t * sz, size_t n )
Equivalente a la versión de std::string::append.
append()
wxString& wxString::append(const wxString & str)
Equivalente a la versión de std::string::append.
append()
wxString& wxString::append ( const wxString & str, size_t pos, size_t n )
Equivalente a la versión de std::string::append.
append()
wxString& wxString::append( const_iterator first, const_iterator last )
Equivalente a la versión de std::string::append.
append()
wxString& wxString::append( size_t n, wxUniChar ch )
Equivalente a la versión de std::string::append.
assign()
wxString& wxString::assign( const char * sz, size_t n )
Equivalente a la versión de std::string.
assign()
wxString& wxString::assign( const wchar_t * sz, size_t n )
Equivalente a la versión de std::string::assign.
assign()
wxString& wxString::assign(const wxString & str)
Equivalente a la versión de std::string::assign.
assign()
wxString& wxString::assign( const wxString & str, size_t pos, size_t n )
Equivalente a la versión de std::string::assign.
assign()
wxString& wxString::assign( const_iterator first, const_iterator last )
Equivalente a la versión de std::string::assign.
assign()
wxString& wxString::assign( size_t n, wxUniChar ch )
Equivalente a la versión de std::string::assign.
at()
wxUniCharRef wxString::at(size_t n)
Equivalente a la versión de std::string::at.
at()
wxUniCharRef wxString::at(size_t n) const
Equivalente a la versión de std::string::at.
BeforeFirst()
wxString wxString::BeforeFirst( wxUniChar ch, wxString * rest = NULL ) const
Obtiene todos los caracteres antes de la primera aparición de ch.
Devuelve la cadena completa si no se encuentra ch.
Parámetros
- ch
- El carácter a buscar.
- rest
- Se rellena con la parte de la cadena que sigue a la primera aparición de ch o se borra si no se ha encontrado. La misma cadena es devuelta por AfterFirst() pero es más eficiente utilizar este parámetro de salida si se necesitan las partes "antes" y "después" que llamar a ambas funciones una tras otra. Este parámetro solo está disponible en wxWidgets versión 2.9.2 y posteriores.
Valor de retorno
Parte de la cadena antes de la primera aparición de ch.
BeforeLast()
wxString wxString::BeforeLast( wxUniChar ch, wxString * rest = NULL ) const
Obtiene todos los caracteres antes de la última aparición de ch.
Devuelve la cadena vacía si no se encuentra ch.
Parámetros
- ch
- El carácter a buscar.
- rest
- Se rellena con la parte de la cadena que sigue a la última aparición de ch o la copia de esta cadena si no se ha encontrado. La misma cadena es devuelta por AfterLast() pero es más eficiente utilizar este parámetro de salida si se necesitan las partes "antes" y "después" que llamar a ambas funciones una tras otra. Este parámetro sólo está disponible en wxWidgets versión 2.9.2 y posteriores.
Valor de retorno
Parte de la cadena antes de la última aparición de ch.
begin()
iterator wxString::begin()
Equivalente a la versión de std::string::begin.
begin()
const_iterator wxString::begin() const
Equivalente a la versión de std::string::begin.
c_str()
wxCStrData wxString::c_str() const
Devuelve una clase intermedia ligera que, a su vez, es convertible implícitamente tanto a const char* como a const wchar_t*.
Dada esta ambigüedad, es mejor utilizar wc_str(), mb_str() o utf8_str() en su lugar.
Por favor, consultar el Soporte Unicode en wxWidgets para obtener más información al respecto.
Hay que tener en cuenta que el valor devuelto no es convertible a char* o wchar_t*, utilizar char_str() o wchar_str() si necesita pasar un valor de cadena a una función que espera un puntero no-const.
capacity()
size_type wxString::capacity() const
Equivalente a la versión de std::string::capacity.
Capitalize()
wxString wxString::Capitalize() const
Devuelve la copia de la cadena con el primer carácter de la cadena en mayúsculas y los siguientes en minúsculas.
cbegin()
const_iterator wxString::cbegin() const
Equivalente a la versión de std::string::cbegin.
cend()
const_iterator wxString::cend() const
Equivalente a la versión de std::string::cend.
char_str()
wxWritableCharBuffer wxString::char_str(const wxMBConv & conv = wxConvLibc) const
Devuelve un objeto con datos de cadena que es implícitamente convertible a puntero char*.
hay que tener en cuenta que cualquier cambio en el búfer devuelto se pierde, por lo que esta función solo es utilizable para pasar cadenas a bibliotecas heredadas que no tienen API const-correct. Utilizar wxStringBuffer si se desea modificar la cadena.
Clear()
void wxString::Clear()
Vacía la cadena y libera la memoria ocupada por ella.
clear()
void wxString::clear()
Equivalente a la versión de std::string::clear.
Clone()
wxString wxString::Clone() const
Devuelve una copia profunda de la cadena.
Es decir, se garantiza que la cadena devuelta no comparte datos con esta cadena cuando se utiliza una implementación de wxString con contador de referencias.
Este método es útil principalmente para pasar cadenas entre hilos (porque wxString no es seguro para hilos). A diferencia de crear una copia utilizando wxString(c_str()), Clone() maneja correctamente los NULs incrustados.
Cmp()
int wxString::Cmp(const wxString & s) const
Comparación sensible a mayúsculas y minúsculas.
Devuelve un valor positivo si la cadena es mayor que el argumento, cero si es igual o un valor negativo si es menor que el argumento (misma semántica que la función estándar strcmp()).
CmpNoCase()
int wxString::CmpNoCase(const wxString & s) const
Comparación insensible a mayúsculas y minúsculas.
Devuelve un valor positivo si la cadena es mayor que el argumento, cero si es igual o un valor negativo si es menor que el argumento (misma semántica que la función estándar strcmp()).
compare()
int wxString::compare(const wxString & str) const
Equivalente a la versión de std::string::compare.
compare()
int wxString::compare( size_t nStart, size_t nLen, const char * sz, size_t nCount = npos ) const
Equivalente a la versión de std::string::compare.
compare()
int wxString::compare( size_t nStart, size_t nLen, const wchar_t * sz, size_t nCount = npos ) const
Equivalente a la versión de std::string::compare.
compare()
int wxString::compare( size_t nStart, size_t nLen, const wxString & str ) const
Equivalente a la versión de std::string::compare.
compare()
int wxString::compare( size_t nStart, size_t nLen, const wxString & str, size_t nStart2, size_t nLen2 ) const
Equivalente a la versión de std::string::compare.
Contains()
bool wxString::Contains(const wxString & str) const
Devuelve true si el objetivo aparece en cualquier parte de wxString; en caso contrario false.
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarse en código nuevo.
crbegin()
const_reverse_iterator wxString::crbegin() const
Equivalente a la versión de std::string::crbegin.
crend()
const_reverse_iterator wxString::crend() const
Equivalente a la versión de std::string::crend.
data()
wxCStrData wxString::data() const
Equivalente a la versión de std::string::data.
Empty()
void wxString::Empty()
Vacía la cadena, pero no libera la memoria ocupada por la cadena.
empty()
bool wxString::empty() const
Equivalente a la versión de std::string::empty.
end()
iterator wxString::end()
Equivalente a la versión de std::string::end.
end()
const_iterator wxString::end() const
Equivalente a la versión de std::string::end.
ends_with()
bool wxString::ends_with(const char * sz) const
Equivalente a la versión de std::string::ends_with.
ends_with()
bool wxString::ends_with(const wchar_t * sz) const
Equivalente a la versión de std::string::ends_with.
ends_with()
bool wxString::ends_with(const wxString & str) const
Equivalente a la versión de std::string::ends_with.
EndsWith()
bool wxString::EndsWith( const wxString & suffix, wxString * rest = NULL ) const
Esta función se puede utilizar para comprobar si la cadena termina con el sufijo especificado.
Si lo hace, la función devolverá true y pondrá el principio de la cadena antes del sufijo en el resto de la cadena si no es NULL. En caso contrario, la función devuelve false y no modifica el resto.
erase()
iterator wxString::erase(iterator first)
Equivalente a la versión de std::string::erase.
erase()
iterator wxString::erase( iterator first, iterator last )
Equivalente a la versión de std::string::erase.
erase()
wxString& wxString::erase( size_type pos = 0, size_type n = npos )
Equivalente a la versión de std::string::erase.
find()
size_t wxString::find( const char * sz, size_t nStart = 0, size_t n = npos ) const
Equivalente a la versión de std::string::find.
find()
size_t wxString::find( const wchar_t * sz, size_t nStart = 0, size_t n = npos ) const
Equivalente a la versión de std::string::find.
find()
size_t wxString::find( const wxString & str, size_t nStart = 0 ) const
Equivalente a la versión de std::string::find.
find()
size_t wxString::find( wxUniChar ch, size_t nStart = 0 ) const
Equivalente a la versión de std::string::find.
Find()
int wxString::Find(const wxString & sub) const
Busca la cadena sub dada.
Devuelve la posición inicial o wxNOT_FOUND si no se encuentra.
Find()
int wxString::Find( wxUniChar ch, bool fromEnd = false ) const
Busca el carácter ch dado.
Devuelve la posición o wxNOT_FOUND si no se encuentra.
find_first_not_of()
size_t wxString::find_first_not_of( const char * sz, size_t nStart, size_t n ) const
Equivalente a la versión de std::string::find_first_not_of.
find_first_not_of()
size_t wxString::find_first_not_of( const char * sz, size_t nStart = 0 ) const
Equivalente a la versión de std::string::find_first_not_of.
find_first_not_of()
size_t wxString::find_first_not_of( const wchar_t * sz, size_t nStart, size_t n ) const
Equivalente a la versión de std::string::find_first_not_of.
find_first_not_of()
size_t wxString::find_first_not_of( const wchar_t * sz, size_t nStart = 0 ) const
Equivalente a la versión de std::string::find_first_not_of.
find_first_not_of()
size_t wxString::find_first_not_of( const wxString & str, size_t nStart = 0 ) const
Equivalente a la versión de std::string::find_first_not_of.
find_first_not_of()
size_t wxString::find_first_not_of( wxUniChar ch, size_t nStart = 0 ) const
Equivalente a la versión de std::string::find_first_not_of.
find_first_of()
size_t wxString::find_first_of( const char * sz, size_t nStart, size_t n ) const
find_first_of()
size_t wxString::find_first_of( const char * sz, size_t nStart = 0 ) const
Equivalente a la versión de std::string::find_first_of.
find_first_of()
size_t wxString::find_first_of( const wchar_t * sz, size_t nStart, size_t n ) const
Equivalente a la versión de std::string::find_first_of.
find_first_of()
size_t wxString::find_first_of( const wchar_t * sz, size_t nStart = 0 ) const
Equivalente a la versión de std::string::find_first_of.
find_first_of()
size_t wxString::find_first_of( wxUniChar c, size_t nStart = 0 ) const
Equivalente a la versión de std::string::find_first_of.
find_last_not_of()
size_t wxString::find_last_not_of( const char * sz, size_t nStart, size_t n ) const
Equivalente a la versión de std::string::find_last_not_of.
find_last_not_of()
size_t wxString::find_last_not_of( const char * sz, size_t nStart = npos ) const
Equivalente a la versión de std::string::find_last_not_of.
find_last_not_of()
size_t wxString::find_last_not_of( const wchar_t * sz, size_t nStart, size_t n ) const
Equivalente a la versión de std::string::find_last_not_of.
find_last_not_of()
size_t wxString::find_last_not_of( const wchar_t * sz, size_t nStart = npos ) const
Equivalente a la versión de std::string::find_last_not_of.
find_last_not_of()
size_t wxString::find_last_not_of( const wxString & str, size_t nStart = npos ) const
Equivalente a la versión de std::string::find_last_not_of.
find_last_of()
size_t wxString::find_last_of( const char * sz, size_t nStart, size_t n ) const
Equivalente a la versión de std::string::find_last_of.
find_last_of()
size_t wxString::find_last_of( const char * sz, size_t nStart = npos ) const
Equivalente a la versión de std::string::find_last_of.
find_last_of()
size_t wxString::find_last_of( const wchar_t * sz, size_t nStart, size_t n ) const
Equivalente a la versión de std::string::find_last_of.
find_last_of()
size_t wxString::find_last_of( const wchar_t * sz, size_t nStart = npos ) const
Equivalente a la versión de std::string::find_last_of.
find_last_of()
size_t wxString::find_last_of( const wxString & str, size_t nStart = npos ) const
Equivalente a la versión de std::string::find_last_of.
find_last_of()
size_t wxString::find_last_of( wxUniChar c, size_t nStart = npos ) const
Equivalente a la versión de std::string::find_last_of.
First()
int wxString::First(const wxString & str) const
Igual que Find().
Se trata de una función de compatibilidad con wxWidgets 1.xx; no debe utilizarla en código nuevo.
First()
int wxString::First(wxUniChar ch) const
Se trata de una función de compatibilidad con wxWidgets 1.xx; no debe utilizarla en código nuevo.
fn_str()
const TYPE wxString::fn_str() const
Devuelve una representación de cadena adecuada para pasarla a las funciones del SO para el manejo de ficheros.
Dependiendo del sistema operativo y la configuración, TYPE es wchar_t*, char*, o wxCharBuffer.
Format()
static wxString wxString::Format( const wxString & format, ... )
Esta función estática devuelve la cadena que contiene el resultado de llamar a Printf() con los parámetros pasados sobre ella.
FormatV()
static wxString wxString::FormatV( const wxString & format, va_list argptr )
Esta función estática devuelve la cadena que contiene el resultado de llamar a PrintfV() con los parámetros pasados sobre ella.
Freq()
int wxString::Freq(wxUniChar ch) const
Devuelve el número de apariciones de ch en la cadena.
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarla en código nuevo.
From8BitData()
static wxString wxString::From8BitData(const char * buf)
Convierte el búfer dado de datos binarios de cadena de 8 bits a wxString.
En la versión Unicode, la cadena se interpreta como si estuviera codificada en ISO-8859-1. La versión sin parámetro len toma datos terminados en NUL.
Se trata de un método muy útil para almacenar datos binarios en wxString. Solo debe utilizarse para ese fin y junto con To8BitData(). Utilice mb_str() para la conversión de datos de caracteres a una codificación conocida.
From8BitData()
static wxString wxString::From8BitData( const char * buf, size_t len )
Convierte el búfer dado de datos binarios de cadena de 8 bits a wxString.
En la versión Unicode, la cadena se interpreta como si estuviera codificada en ISO-8859-1. La versión sin parámetro len toma datos terminados en NUL.
Se trata de un método muy útil para almacenar datos binarios en wxString. Solo debe utilizarse para ese fin y junto con To8BitData(). Utilice mb_str() para la conversión de datos de caracteres a una codificación conocida.
FromAscii()
static wxString wxString::FromAscii(char c)
Convierte la cadena o carácter de una forma ASCII de 7 bits a la representación nativa wxString.
La entrada debe consistir sólo en caracteres ASCII de 7 bits (es decir, menos de 128), el comportamiento en presencia de caracteres no ASCII no está definido, pero dará lugar a fallos de assert.
FromAscii()
static wxString wxString::FromAscii(const char * s)
Convierte la cadena o carácter de una forma ASCII de 7 bits a la representación nativa wxString.
La entrada debe consistir sólo en caracteres ASCII de 7 bits (es decir, menos de 128), el comportamiento en presencia de caracteres no ASCII no está definido, pero dará lugar a fallos de assert.
FromAscii()
static wxString wxString::FromAscii( const char * s, size_t len )
Convierte la cadena o carácter de una forma ASCII de 7 bits a la representación nativa wxString.
La entrada debe consistir sólo en caracteres ASCII de 7 bits (es decir, menos de 128), el comportamiento en presencia de caracteres no ASCII no está definido, pero dará lugar a fallos de assert.
FromAscii()
static wxString wxString::FromAscii(const unsigned char * s)
Convierte la cadena o carácter de una forma ASCII de 7 bits a la representación nativa wxString.
La entrada debe consistir sólo en caracteres ASCII de 7 bits (es decir, menos de 128), el comportamiento en presencia de caracteres no ASCII no está definido, pero dará lugar a fallos de assert.
FromAscii()
static wxString wxString::FromAscii( const unsigned char * s, size_t len )
Convierte la cadena o carácter de una forma ASCII de 7 bits a la representación nativa wxString.
La entrada debe consistir sólo en caracteres ASCII de 7 bits (es decir, menos de 128), el comportamiento en presencia de caracteres no ASCII no está definido, pero dará lugar a fallos de assert.
FromCDouble()
static wxString wxString::FromCDouble( double val, int precision = -1 )
Devuelve una cadena con la representación textual del número en la configuración regional de C.
A diferencia de FromDouble(), la cadena devuelta por esta función siempre utiliza el punto como separador decimal, independientemente de la configuración regional actual. Por lo demás, su comportamiento es idéntico al de la otra función.
FromDouble()
static wxString wxString::FromDouble( double val, int precision = -1 )
Devuelve una cadena con la representación textual del número.
Para el valor predeterminado de precisión, esta función se comporta como una simple envoltura para:
wxString::Format("%g", val)
Si precision es positiva (o cero), se utiliza el formato %.Nf con el valor de precisión dado.
Obsérvese que la cadena devuelta por esta función utiliza el separador decimal apropiado para la configuración regional actual, por ejemplo "," y no un punto en la configuración regional francesa. Utilizar FromCDouble() si no se desea utilizar este método.
Parámetros
- val
- El valor a formatear.
- precision
- El número de dígitos fraccionarios a utilizar en o -1 para utilizar el formato más apropiado. Este parámetro es nuevo en wxWidgets 2.9.2.
FromUTF8()
static wxString wxString::FromUTF8(const char * s)
Convierte una cadena C codificada en UTF-8 a wxString.
Si s no es una cadena UTF-8 válida, se devuelve una cadena vacía.
Hay que tener en cuenta que cuando se utiliza una compilación UTF-8 de wxWidgets hay una alternativa más eficiente a esta función llamada FromUTF8Unchecked() que, a diferencia de ésta, no comprueba que la cadena de entrada sea válida.
La sobrecarga que toma std::string solo está disponible a partir de wxWidgets 3.1.1.
FromUTF8()
static wxString wxString::FromUTF8( const char * s, size_t len )
Convierte una cadena C codificada en UTF-8 a wxString.
Si s no es una cadena UTF-8 válida, se devuelve una cadena vacía.
Hay que tener en cuenta que cuando se utiliza una compilación UTF-8 de wxWidgets hay una alternativa más eficiente a esta función llamada FromUTF8Unchecked() que, a diferencia de ésta, no comprueba que la cadena de entrada sea válida.
La sobrecarga que toma std::string solo está disponible a partir de wxWidgets 3.1.1.
FromUTF8()
static wxString wxString::FromUTF8(const std::string & s)
Convierte una cadena C codificada en UTF-8 a wxString.
Si s no es una cadena UTF-8 válida, se devuelve una cadena vacía.
Hay que tener en cuenta que cuando se utiliza una compilación UTF-8 de wxWidgets hay una alternativa más eficiente a esta función llamada FromUTF8Unchecked() que, a diferencia de ésta, no comprueba que la cadena de entrada sea válida.
La sobrecarga que toma std::string solo está disponible a partir de wxWidgets 3.1.1.
FromUTF8Unchecked()
static wxString wxString::FromUTF8Unchecked(const char * s)
Convierte una cadena C codificada en UTF-8 a wxString sin comprobar su validez.
Este método asume que s es una secuencia UTF-8 válida y no realiza ninguna validación (aunque se lanza un fallo assert en las construcciones debug si la cadena no es válida). Utilízarlo solo si se está absolutamente seguro de que s es una cadena UTF-8 correcta (por ejemplo, porque proviene de otra biblioteca que utiliza UTF-8) y si el rendimiento es importante, de lo contrario utilizar FromUTF8(), más lenta (en la compilación UTF-8) pero más segura. Pasar una cadena UTF-8 incorrecta a esta función resultará en la creación de una wxString corrupta y todas las operaciones posteriores sobre ella serán indefinidas.
La sobrecarga que toma std::string sólo está disponible a partir de wxWidgets 3.1.1.
FromUTF8Unchecked()
static wxString wxString::FromUTF8Unchecked( const char * s, size_t len )
Convierte una cadena C codificada en UTF-8 a wxString sin comprobar su validez.
Este método asume que s es una secuencia UTF-8 válida y no realiza ninguna validación (aunque se lanza un fallo assert en las construcciones debug si la cadena no es válida). Utilízarlo solo si se está absolutamente seguro de que s es una cadena UTF-8 correcta (por ejemplo, porque proviene de otra biblioteca que utiliza UTF-8) y si el rendimiento es importante, de lo contrario utilizar FromUTF8(), más lenta (en la compilación UTF-8) pero más segura. Pasar una cadena UTF-8 incorrecta a esta función resultará en la creación de una wxString corrupta y todas las operaciones posteriores sobre ella serán indefinidas.
La sobrecarga que toma std::string sólo está disponible a partir de wxWidgets 3.1.1.
FromUTF8Unchecked()
static wxString wxString::FromUTF8Unchecked(const std::string & s)
Convierte una cadena C codificada en UTF-8 a wxString sin comprobar su validez.
Este método asume que s es una secuencia UTF-8 válida y no realiza ninguna validación (aunque se lanza un fallo assert en las construcciones debug si la cadena no es válida). Utilízarlo solo si se está absolutamente seguro de que s es una cadena UTF-8 correcta (por ejemplo, porque proviene de otra biblioteca que utiliza UTF-8) y si el rendimiento es importante, de lo contrario utilizar FromUTF8(), más lenta (en la compilación UTF-8) pero más segura. Pasar una cadena UTF-8 incorrecta a esta función resultará en la creación de una wxString corrupta y todas las operaciones posteriores sobre ella serán indefinidas.
La sobrecarga que toma std::string sólo está disponible a partir de wxWidgets 3.1.1.
GetChar()
wxUniChar wxString::GetChar(size_t n) const
Devuelve el carácter en la posición n (sólo lectura).
GetData()
const wxCStrData wxString::GetData() const
Conversión de compatibilidad con wxWidgets.
Lo mismo que c_str().
GetWritableChar()
wxUniCharRef wxString::GetWritableChar(size_t n)
Devuelve una referencia al carácter en la posición n.
GetWriteBuf()
wxStringCharType* wxString::GetWriteBuf(size_t len)
Devuelve un búfer que permite escritura de al menos len bytes.
Devuelve un puntero a un nuevo bloque de memoria, y los datos existentes no se copiarán. Llamar a UngetWriteBuf() tan pronto como sea posible para devolver la cadena a un estado razonable.
Este método está obsoleto, por favor utilizar wxStringBuffer o wxStringBufferLength en su lugar.
insert()
void wxString::insert( iterator it, const_iterator first, const_iterator last )
Equivalente a la versión de std::string::insert.
insert()
void wxString::insert( iterator it, size_type n, wxUniChar ch )
Equivalente a la versión de std::string::insert.
insert()
iterator wxString::insert( iterator it, wxUniChar ch )
Equivalente a la versión de std::string::insert.
insert()
wxString& wxString::insert( size_t nPos, const char * sz, size_t n )
Equivalente a la versión de std::string::insert.
insert()
wxString& wxString::insert( size_t nPos, const wchar_t * sz, size_t n )
Equivalente a la versión de std::string::insert.
insert()
wxString& wxString::insert( size_t nPos, const wxString & str )
Equivalente a la versión de std::string::insert.
insert()
wxString& wxString::insert( size_t nPos, const wxString & str, size_t nStart, size_t n )
Equivalente a la versión de std::string::insert.
insert()
wxString& wxString::insert( size_t nPos, size_t n, wxUniChar ch )
Equivalente a la versión de std::string::insert.
IsAscii()
bool wxString::IsAscii() const
Devuelve true si la cadena contiene sólo caracteres ASCII.
Ver wxUniChar::IsAscii para más detalles.
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarla en código nuevo.
IsEmpty()
bool wxString::IsEmpty() const
Devuelve true si la cadena está vacía.
IsNull()
bool wxString::IsNull() const
Devuelve true si la cadena está vacía (igual que wxString::IsEmpty).
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarse en código nuevo.
IsNumber()
bool wxString::IsNumber() const
Devuelve true si la cadena es un entero (con signo posible).
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarse en código nuevo.
IsSameAs()
bool wxString::IsSameAs( const wxString & s, bool caseSensitive = true ) const
Prueba si la cadena es igual a otra cadena s.
La prueba distingue entre mayúsculas y minúsculas si caseSensitive es verdadero (por defecto) o no si es falso.
Valor de retorno
true si la cadena es igual a la otra, false en caso contrario.
IsSameAs()
bool wxString::IsSameAs( wxUniChar ch, bool caseSensitive = true ) const
Comprueba si la cadena es igual al carácter único ch.
La prueba distingue entre mayúsculas y minúsculas si caseSensitive es verdadero (por defecto) o no si es falso.
Valor de retorno
true si la cadena es igual a la otra, false en caso contrario.
IsWord()
bool wxString::IsWord() const
Devuelve true si la cadena es una palabra.
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarla en código nuevo.
Last()
wxUniCharRef wxString::Last()
Devuelve una referencia al último carácter (escribible).
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarla en código nuevo.
Last()
wxUniChar wxString::Last() const
Devuelve el último carácter.
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarla en código nuevo.
Left()
wxString wxString::Left(size_t count) const
Devuelve los primeros caracteres de la cadena.
Len()
size_t wxString::Len() const
Devuelve la longitud de la cadena.
Length()
size_t wxString::Length() const
Devuelve la longitud de la cadena (igual que Len).
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarla en código nuevo.
length()
size_t wxString::length() const
Equivalente a la versión de std::string::length.
Lower()
wxString wxString::Lower() const
Devuelve esta cadena convertida a minúsculas.
LowerCase()
void wxString::LowerCase()
Igual que MakeLower.
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarla en código nuevo.
MakeCapitalized()
wxString& wxString::MakeCapitalized()
Convierte los primeros caracteres de la cadena a mayúsculas y todos los siguientes a minúsculas y devuelve el resultado.
MakeLower()
wxString& wxString::MakeLower()
Convierte todos los caracteres a minúsculas y devuelve la referencia a la cadena modificada.
MakeUpper()
wxString& wxString::MakeUpper()
Convierte todos los caracteres a mayúsculas y devuelve la referencia a la cadena modificada.
Matches()
bool wxString::Matches(const wxString & mask) const
Devuelve verdadero si el contenido de la cadena coincide con una máscara que contenga '*' y '?'.
max_size()
size_type wxString::max_size() const
Equivalente a la versión de std::string::max_size.
mb_str()
const wxCharBuffer wxString::mb_str(const wxMBConv & conv = wxConvLibc) const
Devuelve la representación multibyte (cadena C) de la cadena utilizando la conversión del método wxMBConv::cWC2MB y devuelve wxCharBuffer.
Mid()
wxString wxString::Mid( size_t first, size_t nCount = wxString::npos ) const
Devuelve una subcadena empezando por la primera, con la longitud count, o el resto de la cadena si count es el valor por defecto.
Pad()
wxString& wxString::Pad( size_t count, wxUniChar chPad = ' ', bool fromRight = true )
Añade copias de chPad al principio o al final de la cadena (por defecto).
Elimina espacios de la izquierda o de la derecha (por defecto).
Prepend()
wxString& wxString::Prepend(const wxString & str)
Añade str a esta cadena, devolviendo una referencia a esta cadena.
Printf()
int wxString::Printf( const wxString & pszFormat, ... )
Similar a la función estándar sprintf().
Devuelve el número de caracteres escritos, o un entero menor que cero en caso de error. Hay que tener en cuenta que si wxUSE_PRINTF_POS_PARAMS se establece en 1, entonces esta función soporta parámetros posicionales estilo Unix98:
wxString str; str.Printf(wxT("%d %d %d"), 1, 2, 3); // str now contains "1 2 3" str.Printf(wxT("%2$d %3$d %1$d"), 1, 2, 3); // str now contains "2 3 1"
Nota: Esta función utilizará una versión segura de vsprintf() (normalmente llamada vsnprintf()) siempre que esté disponible para asignar siempre el buffer del tamaño correcto. Desafortunadamente, esta función no está disponible en todas las plataformas y entonces se utilizará la peligrosa vsprintf(), lo que puede provocar desbordamientos de búfer.
PrintfV()
int wxString::PrintfV( const wxString & pszFormat, va_list argPtr )
Similar a vprintf.
Devuelve el número de caracteres escritos, o un entero menor que cero en caso de error.
rbegin()
reverse_iterator wxString::rbegin()
Equivalente a la versión de std::string::rbegin.
rbegin()
const_reverse_iterator wxString::rbegin() const
Equivalente a la versión de std::string::rbegin.
Remove()
wxString& wxString::Remove(size_t pos)
Elimina todos los caracteres de la cadena a partir de pos.
Utilizar Truncate() como alternativa más legible.
Esta es una función de compatibilidad con wxWidgets 1.xx; no debería usarla en código nuevo.
Remove()
wxString& wxString::Remove( size_t pos, size_t len )
Elimina len caracteres de la cadena, empezando en pos.
Esta es una función de compatibilidad con wxWidgets 1.xx; no debería usarla en código nuevo.
RemoveLast()
wxString& wxString::RemoveLast(size_t n = 1)
Elimina el último carácter.
rend()
reverse_iterator wxString::rend()
Equivalente a la versión de std::string::rend.
rend()
const_reverse_iterator wxString::rend() const
Equivalente a la versión de std::string::rend.
Replace()
size_t wxString::Replace( const wxString & strOld, const wxString & strNew, bool replaceAll = true )
Sustituye la primera (o todas) las apariciones de la subcadena por otra.
Parámetros
- strOld
- La cadena a buscar para sustituirla.
- strNew
- La cadena de sustitución.
- replaceAll
- Si es true se hará un reemplazo global (por defecto), en caso contrario sólo se reemplazará la primera ocurrencia.
Devuelve el número de sustituciones realizadas.
replace()
wxString& wxString::replace( iterator first, iterator last, const char * first1, const char * last1 )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( iterator first, iterator last, const char * s, size_type n )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( iterator first, iterator last, const wchar_t * first1, const wchar_t * last1 )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( iterator first, iterator last, const wchar_t * s, size_type n )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( iterator first, iterator last, const wxString & s )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( iterator first, iterator last, const_iterator first1, const_iterator last1 )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( iterator first, iterator last, size_type n, wxUniChar ch )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( size_t nStart, size_t nLen, const char * sz, size_t nCount )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( size_t nStart, size_t nLen, const wchar_t * sz, size_t nCount )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( size_t nStart, size_t nLen, const & s, size_t nCount )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( size_t nStart, size_t nLen, const wxString & str )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( size_t nStart, size_t nLen, const wxString & str, size_t nStart2, size_t nLen2 )
Equivalente a la versión de std::string::replace.
replace()
wxString& wxString::replace( size_t nStart, size_t nLen, size_t nCount, wxUniChar ch )
Equivalente a la versión de std::string::replace.
reserve()
void wxString::reserve(size_t sz)
Equivalente a la versión de std::string::reserve.
resize()
void wxString::resize( size_t nSize, wxUniChar ch = '\0' )
Equivalente a la versión de std::string::resize.
rfind()
size_t wxString::rfind( const char * sz, size_t nStart = npos, size_t n = npos ) const
Equivalente a la versión de std::string::rfind.
rfind()
size_t wxString::rfind( const wchar_t * sz, size_t nStart = npos, size_t n = npos ) const
Equivalente a la versión de std::string::rfind.
rfind()
size_t wxString::rfind( const & str, size_t nStart = npos ) const
Equivalente a la versión de std::string::rfind.
rfind()
size_t wxString::rfind( wxUniChar ch, size_t nStart = npos ) const
Equivalente a la versión de std::string::rfind.
Right()
wxString wxString::Right(size_t count) const
Devuelve los últimos count caracteres.
SetChar()
void wxString::SetChar( size_t n, wxUniChar ch )
Establece el carácter en la posición n.
Shrink()
bool wxString::Shrink()
Minimiza la memoria de la cadena.
Esto puede ser útil después de una llamada a Alloc() si se ha preasignado demasiada memoria.
Valor de retorno
Siempre devuelve true
size()
size_type wxString::size() const
Equivalente a la versión de std::string::size.
starts_with()
bool wxString::starts_with(const char * sz) const
Equivalente a la versión de std::string::starts_with.
starts_with()
bool wxString::starts_with(const wchar_t * sz) const
Equivalente a la versión de std::string::starts_with.
starts_with()
bool wxString::starts_with(const wxString & str) const
Equivalente a la versión de std::string::starts_with.
StartsWith()
bool wxString::StartsWith( const wxString & prefix, wxString * rest = NULL ) const
Esta función se puede utilizar para comprobar si la cadena comienza con el prefijo especificado.
Si lo hace, la función devolverá true y pondrá el resto de la cadena (es decir, después del prefijo) en rest si no es NULL. En caso contrario, la función devuelve false y no modifica el resto.
Strip()
wxString wxString::Strip(stripType s = trailing) const
Elimina los caracteres del principio y/o del final.
Esto es lo mismo que Trim() excepto que no cambia esta cadena.
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe utilizarla en código nuevo.
substr()
wxString wxString::substr( size_t nStart = 0, size_t nLen = npos ) const
Equivalente a la versión de std::string::substr.
SubString()
wxString wxString::SubString( size_t from, size_t to ) const
Devuelve la parte de la cadena entre los índices from y hasta to.
Esta es una función compatible con wxWidgets 1.xx, utilizar Mid() en su lugar (pero teniendo en cuenta que los parámetros tienen un significado diferente).
swap()
void wxString::swap(wxString & str)
Equivalente a la versión de std::string::swap.
tchar_str()
template<typename T > wxCharTypeBuffer<T> wxString::tchar_str(size_t * len = NULL) const
Devuelve un buffer del tipo especificado que contiene los datos de la cadena.
Este método solo es útil en código de plantilla, de lo contrario se debería llamar directamente a mb_str() o wc_str() si necesita recuperar una cadena estrecha o ancha de esta wxString. El parámetro T de la plantilla debe ser char o wchar_t.
Hay que tener en cuenta que recuperar un búfer char en la construcción UTF-8 devolverá la representación interna de la cadena en UTF-8 mientras que en la construcción wchar_t el búfer char contendrá la conversión de la cadena a la codificación de la localización actual (y por tanto puede fallar).
Parámetros
- len
- Si no es NULL, se rellena con la longitud del búfer devuelto.
Valor de retorno
buffer que contiene el contenido de la cadena en el tipo especificado, hay que tener en cuenta que puede ser NULL si la conversión falló (por ejemplo, la cadena Unicode no pudo ser convertida a la codificación actual cuando T es char).
To8BitData()
const wxScopedCharBuffer wxString::To8BitData() const
Convierte la cadena en una cadena de 8 bits con codificación ISO-8859-1 en forma de wxCharBuffer (solo para Unicode).
Se trata de un método muy útil cuando se almacenan datos binarios en wxString. Solo debe utilizarse para este fin. Solo es válido llamar a este método en cadenas creadas utilizando From8BitData().
ToAscii()
const TYPE wxString::ToAscii(char replaceWith = '_') const
Convierte la cadena en una cadena ASCII de 7 bits en forma de wxCharBuffer (solo para versiones Unicode) o una cadena C (para versiones ANSI).
Hay que tener en cuenta que esta conversión solo se realiza sin pérdidas si la cadena solo contiene caracteres ASCII, ya que todos los caracteres no ASCII se sustituyen por el (mismo) carácter de sustitución proporcionado.
Utilizar mb_str() o utf8_str() para convertir a otras codificaciones.
Dependiendo del sistema operativo y de la configuración, TYPE es char* o wxCharBuffer.
Parámetros
- replaceWith
- El carácter utilizado para reemplazar cualquier carácter no ASCII, por defecto el guion bajo ("_"). Este parámetro es nuevo desde wxWidgets 3.1.0.
ToCDouble()
bool wxString::ToCDouble(double * val) const
Variante de ToDouble(), que funciona siempre en la configuración regional "C".
Funciona como ToDouble(), pero esta función espera que el número en coma flotante se formatee siempre con las reglas dictadas por la configuración regional "C" (en particular, el punto decimal debe ser un punto), independientemente de la configuración regional de la aplicación (véase wxLocale).
double val(0); // Extraerá 2.2 de la cadena, pero devuelve // false porque la sección "lbs" de la cadena // no forma parte de la conversión. wxString str("2.2lbs"); bool fullStringConverted = str.ToCDouble(&val); // También extraerá 2.2, pero devuelve true porque // la totalidad de la cadena fue convertida a un doble. str.assign("2.2"); fullStringConverted = str.ToCDouble(&val);
ToCLong()
bool wxString::ToCLong( long * val, int base = 10 ) const
Variante de ToLong() que funciona siempre en la configuración regional "C".
Funciona como ToLong() pero a diferencia de ella, esta función espera que el número entero se formatee siempre con las reglas dictadas por la configuración regional "C", independientemente de la configuración regional actual de la aplicación (véase wxLocale).
ToCULong()
bool wxString::ToCULong( unsigned long * val, int base = 10 ) const
Variante de ToULong() que funciona siempre en la configuración regional "C".
Funciona como ToULong() pero a diferencia de ella, esta función espera que el número entero se formatee siempre con las reglas dictadas por la configuración regional "C", independientemente de la configuración regional de la aplicación (véase wxLocale).
ToDouble()
bool wxString::ToDouble(double * val) const
Intenta convertir la cadena en un número de coma flotante.
Devuelve true en caso de éxito (el número se almacena en la ubicación apuntada por val) o false si la cadena no representa dicho número (el valor de val puede seguir modificándose en este caso).
hay que tener en cuenta que a diferencia de ToCDouble() esta función utiliza una versión localizada de wxStrtod() y por lo tanto necesita como punto decimal (y separador de miles) el punto decimal específico de la localidad. Por lo tanto, se debe utilizar esta función solo cuando se esté seguro de que esta cadena contiene un número de coma flotante formateado con las reglas de la configuración regional actualmente en uso (véase wxLocale).
Obsérvese también que, aunque esta función es específica de la configuración regional, no admite cadenas con separadores de miles, aunque la configuración regional actual utilice la agrupación de dígitos. Se puede utilizar wxNumberFormatter::FromString() para analizar este tipo de cadenas.
Por favor, consultar la documentación de la función estándar strtod() para más detalles sobre la sintaxis soportada.
ToInt()
bool wxString::ToInt( int * val, int base = 10 ) const
Funciona como ToLong() pero para enteros con signo.
ToLong()
bool wxString::ToLong( long * val, int base = 10 ) const
Intenta convertir la cadena a un entero con signo en base base.
Devuelve true en caso de éxito, en cuyo caso el número se almacena en la ubicación apuntada por val, o false si la cadena no representa un número válido en la base dada (el valor de val aún puede modificarse en este caso).
Hay que tener en cuenta que, a diferencia de ToCLong(), esta función utiliza una versión localizada de wxStrtol(). Por lo tanto, se debe utilizar esta función solo cuando se esté seguro de que esta cadena contiene un número entero formateado con las reglas de la configuración regional actualmente en uso (véase wxLocale).
Al igual que con ToDouble(), esta función no admite cadenas que contengan separadores de miles aunque la configuración regional actual utilice la agrupación de dígitos. Se puede utilizar wxNumberFormatter::FromString() para analizar dichas cadenas.
Por favor, consultar la documentación de la función estándar strtol() para más detalles sobre la sintaxis soportada.
ToLongLong()
bool wxString::ToLongLong( wxLongLong_t * val, int base = 10 ) const
Es exactamente igual que ToLong() pero funciona con números enteros de 64 bits.
Hay que tener en cuenta que actualmente no funciona (siempre devuelve false) si el análisis sintáctico de números de 64 bits no está soportado por la biblioteca de tiempo de ejecución de C subyacente. Los compiladores que soportan C99 y Microsoft Visual C++ versión 7 y superiores sí lo soportan.
ToStdString()
std::string wxString::ToStdString(const wxMBConv & conv = wxConvLibc) const
Devuelve la cadena como std::string utilizando el método wxMBConv::cWC2MB conv.
Hay que tener en cuenta que si la conversión del contenido de la cadena (Unicode) usando conv falla, la cadena devuelta estará vacía. Hay que asegurarse de comprobarlo para evitar la pérdida silenciosa de datos. Alternativamente, se puede pasar wxConvUTF8 como conv o usar utf8_string() para usar siempre la codificación UTF-8, en lugar de la actual.
En lugar de usar esta función también es posible escribir
std::string s; wxString wxs; ... s = std::string(wxs);
pero el uso de ToStdString() puede hacer que el código sea más claro.
Parámetros
- conv
- El conversor a utilizar. Este parámetro es nuevo en wxWidgets 3.1.1.
ToStdWstring()
std::wstring wxString::ToStdWstring() const
Devuelve la cadena como std::wstring.
A diferencia de ToStdString(), no hay peligro de pérdida de datos al utilizar esta función.
ToUInt()
bool wxString::ToUInt( unsigned int * val, int base = 10 ) const
Funciona como ToULong() pero para enteros sin signo.
ToULong()
bool wxString::ToULong( unsigned long * val, int base = 10 ) const
Intenta convertir la cadena a un entero sin signo en base base.
Devuelve true en caso de éxito, en cuyo caso el número se almacena en la ubicación apuntada por val, o false si la cadena no representa un número válido en la base dada (el valor de val aún puede modificarse en este caso).
Hay que tener en cuenta que esta función se comporta de la misma manera que la strtoul() estándar, por lo que simplemente convierte los números negativos a una representación sin signo en lugar de rechazarlos (por ejemplo, -1 se devuelve como ULONG_MAX).
Ver ToLong() para una descripción más detallada del parámetro base (y del comportamiento específico de la localización de esta función).
ToULongLong()
bool wxString::ToULongLong( wxULongLong_t * val, int base = 10 ) const
Es exactamente igual que ToULong() pero funciona con números enteros de 64 bits.
Consultar ToLongLong() si se desea más información.
ToUTF8()
const wxScopedCharBuffer wxString::ToUTF8() const
Igual que utf8_str().
Trim()
wxString& wxString::Trim(bool fromRight = true)
Elimina los espacios en blanco (espacio, tabuladores, salto de línea, nueva línea y retorno de carro) del extremo izquierdo o derecho de la cadena (derecho por defecto).
Truncate()
wxString& wxString::Truncate(size_t len)
Trunca la cadena a la longitud len dada.
UngetWriteBuf()
void wxString::UngetWriteBuf()
Devuelve la cadena a un estado razonable (en el que puede ser utilizada normalmente), después de que GetWriteBuf() fuera llamada.
La versión de la función sin el parámetro len calculará por sí misma la nueva longitud de la cadena asumiendo que la cadena está terminada por el primer carácter NUL en ella, mientras que la segunda utilizará la longitud especificada y, por tanto, es la única versión que debería utilizarse con las cadenas con NULs incrustados (también es ligeramente más eficiente ya que no es necesario llamar a strlen()).
Este método está obsoleto, por favor utilizar wxStringBuffer o wxStringBufferLength en su lugar.
UngetWriteBuf()
void wxString::UngetWriteBuf(size_t len)
Esta es una función miembro sobrecargada, proporcionada por conveniencia. Solo difiere de la función anterior en los argumentos que acepta.
Upper()
wxString wxString::Upper() const
Devuelve esta cadena convertida a mayúsculas.
UpperCase()
void wxString::UpperCase()
Igual que MakeUpper().
Esta es una función de compatibilidad con wxWidgets 1.xx; no debe usarla en código nuevo.
utf8_str()
const wxScopedCharBuffer wxString::utf8_str() const
Convierte el contenido de la cadena a UTF-8 y lo devuelve como un objeto wxCharBuffer temporal o como un puntero al contenido interno de la cadena en formato UTF-8.
utf8_string()
const std::string wxString::utf8_string() const
Devuelve la cadena como std::string utilizando codificación UTF-8.
Esto es un equivalente más corto y legible de llamar a ToStdString() con el argumento wxConvUTF8.
wc_str()
const TYPE wxString::wc_str() const
Convierte el contenido de la cadena a la representación de caracteres anchos y lo devuelve como un objeto temporal wxWCharBuffer (Unix y macOS) o devuelve un puntero al contenido interno de la cadena en modo de caracteres anchos (Windows).
Dependiendo del sistema operativo y de la configuración, TYPE es wchar_t* o wxCharBuffer.
La macro wxWX2WCbuf se define como el tipo de retorno correcto (sin const).
wchar_str()
wxWritableWCharBuffer wxString::wchar_str() const
Devuelve un objeto con datos de cadena que es implícitamente convertible a puntero char*.
Hay que tener en cuenta que los cambios en el búfer devuelto pueden o no perderse (dependiendo de la compilación), por lo que esta función solo es utilizable para pasar cadenas a bibliotecas heredadas que no tienen API const-correct. Utilizar wxStringBuffer si se desea modificar la cadena.
wx_str()
const wxStringCharType* wxString::wx_str() const
Conversión explícita a cadena C en la representación interna (wchar_t* o char* codificado en UTF-8, dependiendo de la compilación).
Operadores
operator()()
wxString wxString::operator()( size_t start, size_t len ) const
Igual que Mid() (extracción de subcadenas).
operator+()
wxString wxString::operator+( const wxString & x, const wxString & y )
Concatenación: devuelve una nueva cadena igual a la concatenación de los operandos.
operator+()
wxString wxString::operator+( const wxString & x, wxUniChar y )
Esta es una función miembro sobrecargada, proporcionada por conveniencia. Solo difiere de la función anterior en los argumentos que acepta.
operator+=()
void wxString::operator+=(const wxString & str)
Concatenación in situ: el argumento se añade a la cadena.
operator+=()
void wxString::operator+=(wxUniChar c)
Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.
operator<<()
wxString& wxString::operator<<(char ch)
Añade el carácter ch.
operator<<()
wxString& wxString::operator<<(const char * psz)
Añade la cadena literal psz.
operator<<()
wxString& wxString::operator<<(const wchar_t * pwz)
Añade la cadena literal pwz.
operator<<()
wxString& wxString::operator<<(const wxCharBuffer & s)
Añade la cadena s.
operator<<()
wxString& wxString::operator<<(const wxCStrData & psz)
Añade la cadena literal psz.
operator<<()
wxString& wxString::operator<<(const wxString & s)
Añade la cadena s.
operator<<()
wxString& wxString::operator<<(const wxWCharBuffer & s)
Añade la cadena s.
operator<<()
wxString& wxString::operator<<(double d)
Añade la cadena correspondiente al valor d.
operator<<()
wxString& wxString::operator<<(float f)
Añade la cadena correspondiente al valor f.
operator<<()
wxString& wxString::operator<<(long l)
Añade la cadena correspondiente al valor l.
operator<<()
wxString& wxString::operator<<(unsigned char ch)
Añade el carácter ch.
operator<<()
wxString& wxString::operator<<(unsigned int ui)
Añade la cadena correspondiente al valor ui.
operator<<()
wxString& wxString::operator<<(unsigned long ul)
Añade la cadena correspondiente al valor ul.
operator<<()
wxString& wxString::operator<<(wchar_t ch)
Añade el carácter ch.
operator<<()
wxString& wxString::operator<<(wxLongLong_t ll)
Añade la cadena correspondiente al valor ll.
operator<<()
wxString& wxString::operator<<(wxULongLong_t ul)
Añade la cadena correspondiente al valor ul.
operator<<()
wxString& wxString::operator<<(wxUniChar ch)
Añade el carácter ch.
operator<<()
wxString& wxString::operator<<(wxUniCharRef ch)
Añade el carácter ch.
operator=()
wxString wxString::operator=(const wxString & str)
Asignación: véase el constructor relativo wxString.
operator=()
wxString wxString::operator=(wxUniChar c)
Asignación: véase el constructor relativo wxString.
operator[]()
wxUniCharRef wxString::operator[](size_t i)
Devuelve una referencia escribible al carácter i-ésimo de la cadena.
operator[]()
wxUniChar wxString::operator[](size_t i) const
Devuelve el carácter i-ésimo de la cadena.
Datos
npos
const size_t wxString::npos
Un valor "no válido" para el índice de cadena.