Utility string class that automatically handles conversions between types and encodings. More...
#include <String.hpp>
Public Types | |
typedef std::basic_string < Uint32 >::iterator | Iterator |
Iterator type. | |
typedef std::basic_string < Uint32 >::const_iterator | ConstIterator |
Constant iterator type. | |
Public Member Functions | |
String () | |
Default constructor. | |
String (char ansiChar, const std::locale &locale=std::locale()) | |
Construct from a single ANSI character and a locale. | |
String (wchar_t wideChar) | |
Construct from single wide character. | |
String (Uint32 utf32Char) | |
Construct from single UTF-32 character. | |
String (const char *ansiString, const std::locale &locale=std::locale()) | |
Construct from a null-terminated C-style ANSI string and a locale. | |
String (const std::string &ansiString, const std::locale &locale=std::locale()) | |
Construct from an ANSI string and a locale. | |
String (const wchar_t *wideString) | |
Construct from null-terminated C-style wide string. | |
String (const std::wstring &wideString) | |
Construct from a wide string. | |
String (const Uint32 *utf32String) | |
Construct from a null-terminated C-style UTF-32 string. | |
String (const std::basic_string< Uint32 > &utf32String) | |
Construct from an UTF-32 string. | |
String (const String ©) | |
Copy constructor. | |
operator std::string () const | |
Implicit cast operator to std::string (ANSI string) | |
operator std::wstring () const | |
Implicit cast operator to std::wstring (wide string) | |
std::string | toAnsiString (const std::locale &locale=std::locale()) const |
Convert the unicode string to an ANSI string. | |
std::wstring | toWideString () const |
Convert the unicode string to a wide string. | |
String & | operator= (const String &right) |
Overload of assignment operator. | |
String & | operator+= (const String &right) |
Overload of += operator to append an UTF-32 string. | |
Uint32 | operator[] (std::size_t index) const |
Overload of [] operator to access a character by its position. | |
Uint32 & | operator[] (std::size_t index) |
Overload of [] operator to access a character by its position. | |
void | clear () |
Clear the string. | |
std::size_t | getSize () const |
Get the size of the string. | |
bool | isEmpty () const |
Check whether the string is empty or not. | |
void | erase (std::size_t position, std::size_t count=1) |
Erase one or more characters from the string. | |
void | insert (std::size_t position, const String &str) |
Insert one or more characters into the string. | |
std::size_t | find (const String &str, std::size_t start=0) const |
Find a sequence of one or more characters in the string. | |
const Uint32 * | getData () const |
Get a pointer to the C-style array of characters. | |
Iterator | begin () |
Return an iterator to the beginning of the string. | |
ConstIterator | begin () const |
Return an iterator to the beginning of the string. | |
Iterator | end () |
Return an iterator to the beginning of the string. | |
ConstIterator | end () const |
Return an iterator to the beginning of the string. | |
Static Public Attributes | |
static const std::size_t | InvalidPos |
Represents an invalid position in the string. | |
Friends | |
bool | operator== (const String &left, const String &right) |
bool | operator< (const String &left, const String &right) |
Related Functions | |
(Note that these are not member functions.) | |
bool | operator== (const String &left, const String &right) |
Overload of == operator to compare two UTF-32 strings. | |
bool | operator!= (const String &left, const String &right) |
Overload of != operator to compare two UTF-32 strings. | |
bool | operator< (const String &left, const String &right) |
Overload of < operator to compare two UTF-32 strings. | |
bool | operator> (const String &left, const String &right) |
Overload of > operator to compare two UTF-32 strings. | |
bool | operator<= (const String &left, const String &right) |
Overload of <= operator to compare two UTF-32 strings. | |
bool | operator>= (const String &left, const String &right) |
Overload of >= operator to compare two UTF-32 strings. | |
String | operator+ (const String &left, const String &right) |
Overload of binary + operator to concatenate two strings. | |
Utility string class that automatically handles conversions between types and encodings.
sf::String is a utility string class defined mainly for convenience.
It is a Unicode string (implemented using UTF-32), thus it can store any character in the world (european, chinese, arabic, hebrew, etc.).
It automatically handles conversions from/to ANSI and wide strings, so that you can work with standard string classes and still be compatible with functions taking a sf::String.
Conversions involving ANSI strings use the default user locale. However it is possible to use a custom locale if necessary:
sf::String defines the most important functions of the standard std::string class: removing, random access, iterating, appending, comparing, etc. However it is a simple class provided for convenience, and you may have to consider using a more optimized class if your program requires complex string handling. The automatic conversion functions will then take care of converting your string to sf::String whenever SFML requires it.
Please note that SFML also defines a low-level, generic interface for Unicode handling, see the sf::Utf classes.
Definition at line 43 of file String.hpp.
typedef std::basic_string<Uint32>::const_iterator sf::String::ConstIterator |
Constant iterator type.
Definition at line 51 of file String.hpp.
typedef std::basic_string<Uint32>::iterator sf::String::Iterator |
Iterator type.
Definition at line 50 of file String.hpp.
sf::String::String | ( | ) |
Default constructor.
This constructor creates an empty string.
sf::String::String | ( | char | ansiChar, |
const std::locale & | locale = std::locale() |
||
) |
Construct from a single ANSI character and a locale.
The source character is converted to UTF-32 according to the given locale.
ansiChar | ANSI character to convert |
locale | Locale to use for conversion |
sf::String::String | ( | wchar_t | wideChar | ) |
Construct from single wide character.
wideChar | Wide character to convert |
sf::String::String | ( | Uint32 | utf32Char | ) |
Construct from single UTF-32 character.
utf32Char | UTF-32 character to convert |
sf::String::String | ( | const char * | ansiString, |
const std::locale & | locale = std::locale() |
||
) |
Construct from a null-terminated C-style ANSI string and a locale.
The source string is converted to UTF-32 according to the given locale.
ansiString | ANSI string to convert |
locale | Locale to use for conversion |
sf::String::String | ( | const std::string & | ansiString, |
const std::locale & | locale = std::locale() |
||
) |
Construct from an ANSI string and a locale.
The source string is converted to UTF-32 according to the given locale.
ansiString | ANSI string to convert |
locale | Locale to use for conversion |
sf::String::String | ( | const wchar_t * | wideString | ) |
Construct from null-terminated C-style wide string.
wideString | Wide string to convert |
sf::String::String | ( | const std::wstring & | wideString | ) |
Construct from a wide string.
wideString | Wide string to convert |
sf::String::String | ( | const Uint32 * | utf32String | ) |
Construct from a null-terminated C-style UTF-32 string.
utf32String | UTF-32 string to assign |
sf::String::String | ( | const std::basic_string< Uint32 > & | utf32String | ) |
Construct from an UTF-32 string.
utf32String | UTF-32 string to assign |
sf::String::String | ( | const String & | copy | ) |
Copy constructor.
copy | Instance to copy |
Iterator sf::String::begin | ( | ) |
Return an iterator to the beginning of the string.
ConstIterator sf::String::begin | ( | ) | const |
Return an iterator to the beginning of the string.
void sf::String::clear | ( | ) |
Iterator sf::String::end | ( | ) |
Return an iterator to the beginning of the string.
The end iterator refers to 1 position past the last character; thus it represents an invalid character and should never be accessed.
ConstIterator sf::String::end | ( | ) | const |
Return an iterator to the beginning of the string.
The end iterator refers to 1 position past the last character; thus it represents an invalid character and should never be accessed.
void sf::String::erase | ( | std::size_t | position, |
std::size_t | count = 1 |
||
) |
Erase one or more characters from the string.
This function removes a sequence of count characters starting from position.
position | Position of the first character to erase |
count | Number of characters to erase |
std::size_t sf::String::find | ( | const String & | str, |
std::size_t | start = 0 |
||
) | const |
Find a sequence of one or more characters in the string.
This function searches for the characters of str into the string, starting from start.
str | Characters to find |
start | Where to begin searching |
const Uint32* sf::String::getData | ( | ) | const |
Get a pointer to the C-style array of characters.
This functions provides a read-only access to a null-terminated C-style representation of the string. The returned pointer is temporary and is meant only for immediate use, thus it is not recommended to store it.
std::size_t sf::String::getSize | ( | ) | const |
void sf::String::insert | ( | std::size_t | position, |
const String & | str | ||
) |
Insert one or more characters into the string.
This function inserts the characters of str into the string, starting from position.
position | Position of insertion |
str | Characters to insert |
bool sf::String::isEmpty | ( | ) | const |
sf::String::operator std::string | ( | ) | const |
Implicit cast operator to std::string (ANSI string)
The current global locale is used for conversion. If you want to explicitely specify a locale, see toAnsiString. Characters that do not fit in the target encoding are discarded from the returned string. This operator is defined for convenience, and is equivalent to calling toAnsiString().
sf::String::operator std::wstring | ( | ) | const |
Implicit cast operator to std::wstring (wide string)
Characters that do not fit in the target encoding are discarded from the returned string. This operator is defined for convenience, and is equivalent to calling toWideString().
Overload of += operator to append an UTF-32 string.
right | String to append |
Overload of assignment operator.
right | Instance to assign |
Uint32 sf::String::operator[] | ( | std::size_t | index | ) | const |
Overload of [] operator to access a character by its position.
This function provides read-only access to characters. Note: this function doesn't throw if index is out of range.
index | Index of the character to get |
Uint32& sf::String::operator[] | ( | std::size_t | index | ) |
Overload of [] operator to access a character by its position.
This function provides read and write access to characters. Note: this function doesn't throw if index is out of range.
index | Index of the character to get |
std::string sf::String::toAnsiString | ( | const std::locale & | locale = std::locale() | ) | const |
Convert the unicode string to an ANSI string.
The UTF-32 string is converted to an ANSI string in the encoding defined by locale. Characters that do not fit in the target encoding are discarded from the returned string.
locale | Locale to use for conversion |
std::wstring sf::String::toWideString | ( | ) | const |
Convert the unicode string to a wide string.
Characters that do not fit in the target encoding are discarded from the returned string.
Overload of != operator to compare two UTF-32 strings.
left | Left operand (a string) |
right | Right operand (a string) |
Overload of binary + operator to concatenate two strings.
left | Left operand (a string) |
right | Right operand (a string) |
Overload of < operator to compare two UTF-32 strings.
left | Left operand (a string) |
right | Right operand (a string) |
Overload of <= operator to compare two UTF-32 strings.
left | Left operand (a string) |
right | Right operand (a string) |
Overload of == operator to compare two UTF-32 strings.
left | Left operand (a string) |
right | Right operand (a string) |
Overload of > operator to compare two UTF-32 strings.
left | Left operand (a string) |
right | Right operand (a string) |
Overload of >= operator to compare two UTF-32 strings.
left | Left operand (a string) |
right | Right operand (a string) |
|
static |
Represents an invalid position in the string.
Definition at line 56 of file String.hpp.