arbitrary characters. The ASCII NUL character is allowed, although care should be
taken when passing strings containing it to other functions.
-wxString only works with ASCII (8 bit characters) strings as of this release,
-but support for UNICODE (16 but characters) is planned for the next one.
+wxString works with both ASCII (traditional, 7 or 8 bit, characters) as well as
+Unicode (wide characters) strings.
This class has all the standard operations you can expect to find in a string class:
dynamic memory management (string extends to accommodate new characters),
\helpref{BeforeLast}{wxstringbeforelast}, \helpref{operator<<}{wxstringoperatorout}
or \helpref{Printf}{wxstringprintf}. Of course, all the standard string
operations are supported as well.
-\item {\bf UNICODE} In this release, wxString only supports {\it construction} from
-a UNICODE string, but in the next one it will be capable of also storing its
-internal data in either ASCII or UNICODE format.
+\item {\bf Unicode} wxString is Unicode friendly: it allows to easily convert
+to and from ANSI and Unicode strings in any build mode (see the
+\helpref{Unicode overview}{unicode} for more details) and maps to either
+{\tt string} or {\tt wstring} transparently depending on the current mode.
\item {\bf Used by wxWindows} And, of course, this class is used everywhere
inside wxWindows so there is no performance loss which would result from
conversions of objects of any other string class (including std::string) to
\subsection{Other string related functions and classes}
-As most programs use character strings, the standard C library provides quite a
-few functions to work with them. Unfortunately, some of them have rather
-counter-intuitive behaviour (like strncpy() which doesn't always terminate the resulting
-string with a NULL) and are in general not very safe (passing NULL to them will
-probably lead to program crash). Moreover, some very useful functions are not
-standard at all. This is why in addition to all wxString functions, there are
-also a few global string functions which try to correct these problems:
-\helpref{IsEmpty()}{IsEmpty} verifies whether the string is empty (returning
-TRUE for NULL pointers), \helpref{Strlen()}{Strlen} also handles NULLs correctly
-and returns 0 for them and \helpref{Stricmp()}{Stricmp} is just a
-platform-independent version of case-insensitive string comparison function
-known either as stricmp() or strcasecmp() on different platforms.
+As most programs use character strings, the standard C library provides quite
+a few functions to work with them. Unfortunately, some of them have rather
+counter-intuitive behaviour (like strncpy() which doesn't always terminate the
+resulting string with a NULL) and are in general not very safe (passing NULL
+to them will probably lead to program crash). Moreover, some very useful
+functions are not standard at all. This is why in addition to all wxString
+functions, there are also a few global string functions which try to correct
+these problems: \helpref{wxIsEmpty()}{wxisempty} verifies whether the string
+is empty (returning {\tt true} for {\tt NULL} pointers),
+\helpref{wxStrlen()}{wxstrlen} also handles NULLs correctly and returns 0 for
+them and \helpref{wxStricmp()}{wxstricmp} is just a platform-independent
+version of case-insensitive string comparison function known either as
+stricmp() or strcasecmp() on different platforms.
The {\tt <wx/string.h>} header also defines \helpref{wxSnprintf}{wxsnprintf}
and \helpref{wxVsnprintf}{wxvsnprintf} functions which should be used instead