Utility string class that automatically handles conversions between types and encodings.
More...
#include <
SFML/System/String.hpp
>
Public Types
typedef std::basic_string< Uint32 >::iterator
Iterator
Iterator type.
typedef std::basic_string< Uint32 >::const_iterator
ConstIterator
Read-only 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 conversion operator to std::string (ANSI string)
operator std::wstring
() const
Implicit conversion 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.
std::basic_string< Uint8 >
toUtf8
() const
Convert the Unicode string to a UTF-8 string.
std::basic_string< Uint16 >
toUtf16
() const
Convert the Unicode string to a UTF-16 string.
std::basic_string< Uint32 >
toUtf32
() const
Convert the Unicode string to a UTF-32 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.
void
replace
(std::size_t position, std::size_t length, const
String
&replaceWith)
Replace a substring with another string.
void
replace
(const
String
&searchFor, const
String
&replaceWith)
Replace all occurrences of a substring with a replacement string.
String
substring
(std::size_t position, std::size_t length=
InvalidPos
) const
Return a part of 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 end of the string.
ConstIterator
end
() const
Return an iterator to the end of the string.
Static Public Member Functions
template<typename T >
static
String
fromUtf8
(T
begin
, T
end
)
Create a new
sf::String
from a UTF-8 encoded string.
template<typename T >
static
String
fromUtf16
(T
begin
, T
end
)
Create a new
sf::String
from a UTF-16 encoded string.
template<typename T >
static
String
fromUtf32
(T
begin
, T
end
)
Create a new
sf::String
from a UTF-32 encoded 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 Symbols
(Note that these are not member symbols.)
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
.
std::string s1 = s;
std::wstring s2 = s;
s =
"hello"
;
s = L
"hello"
;
s +=
'a'
;
s += L
'a'
;
Utility string class that automatically handles conversions between types and encodings.
Conversions involving ANSI strings use the default user locale. However it is possible to use a custom locale if necessary:
std::locale locale;
std::string toAnsiString(const std::locale &locale=std::locale()) const
Convert the Unicode string to an ANSI string.
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
45
of file
String.hpp
.
◆
ConstIterator
Construct from a single ANSI character and a locale.
The source character is converted to UTF-32 according to the given locale.
-
Parameters
-
ansiCharANSI character to convert
localeLocale to use for conversion
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.
-
Parameters
-
ansiStringANSI string to convert
localeLocale to use for conversion
Construct from an ANSI string and a locale.
The source string is converted to UTF-32 according to the given locale.
-
Parameters
-
ansiStringANSI string to convert
localeLocale to use for conversion
Return an iterator to the beginning of the string.
-
Returns
-
Read-write iterator to the beginning of the string characters
-
See also
-
end
Return an iterator to the beginning of the string.
-
Returns
-
Read-only iterator to the beginning of the string characters
-
See also
-
end
Return an iterator to the end 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.
-
Returns
-
Read-write iterator to the end of the string characters
-
See also
-
begin
Return an iterator to the end 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.
-
Returns
-
Read-only iterator to the end of the string characters
-
See also
-
begin
Erase one or more characters from the string.
This function removes a sequence of
count
characters starting from
position
.
-
Parameters
-
positionPosition of the first character to erase
countNumber of characters to erase
Find a sequence of one or more characters in the string.
This function searches for the characters of
str
in the string, starting from
start
.
-
Parameters
-
strCharacters to find
startWhere to begin searching
-
Returns
-
Position of
str
in the string, or
String::InvalidPos
if not found
Create a new
sf::String
from a UTF-32 encoded string.
This function is provided for consistency, it is equivalent to using the constructors that takes a const sf::Uint32* or a std::basic_string<sf::Uint32>.
-
Parameters
-
beginForward iterator to the beginning of the UTF-32 sequence
endForward iterator to the end of the UTF-32 sequence
-
Returns
-
A
sf::String
containing the source string
-
See also
-
fromUtf8
,
fromUtf16
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.
-
Returns
-
Read-only pointer to the array of characters
Insert one or more characters into the string.
This function inserts the characters of
str
into the string, starting from
position
.
-
Parameters
-
positionPosition of insertion
strCharacters to insert
Check whether the string is empty or not.
-
Returns
-
True if the string is empty (i.e. contains no character)
-
See also
-
clear
,
getSize
Implicit conversion operator to std::string (ANSI string)
The current global locale is used for conversion. If you want to explicitly 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()
.
-
Returns
-
Converted ANSI string
-
See also
-
toAnsiString
, operator std::wstring
Implicit conversion 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()
.
-
Returns
-
Converted wide string
-
See also
-
toWideString
, operator std::string
Overload of [] operator to access a character by its position.
This function provides read and write access to characters. Note: the behavior is undefined if
index
is out of range.
-
Parameters
-
indexIndex of the character to get
-
Returns
-
Reference to the character at position
index
Overload of [] operator to access a character by its position.
This function provides read-only access to characters. Note: the behavior is undefined if
index
is out of range.
-
Parameters
-
indexIndex of the character to get
-
Returns
-
Character at position
index
Replace all occurrences of a substring with a replacement string.
This function replaces all occurrences of
searchFor
in this string with the string
replaceWith
.
-
Parameters
-
searchForThe value being searched for
replaceWithThe value that replaces found
searchFor
values
Replace a substring with another string.
This function replaces the substring that starts at index
position
and spans
length
characters with the string
replaceWith
.
-
Parameters
-
positionIndex of the first character to be replaced
lengthNumber of characters to replace. You can pass InvalidPos to replace all characters until the end of the string.
replaceWith
String
that replaces the given substring.
Return a part of the string.
This function returns the substring that starts at index
position
and spans
length
characters.
-
Parameters
-
positionIndex of the first character
lengthNumber of characters to include in the substring (if the string is shorter, as many characters as possible are included).
InvalidPos
can be used to include all characters until the end of the string.
-
Returns
-
String
object containing a substring of this object
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.
-
Parameters
-
localeLocale to use for conversion
-
Returns
-
Converted ANSI string
-
See also
-
toWideString
, operator std::string
Convert the Unicode string to a UTF-32 string.
This function doesn't perform any conversion, since the string is already stored as UTF-32 internally.
-
Returns
-
Converted UTF-32 string
-
See also
-
toUtf8
,
toUtf16
Convert the Unicode string to a wide string.
Characters that do not fit in the target encoding are discarded from the returned string.
-
Returns
-
Converted wide string
-
See also
-
toAnsiString
, operator std::wstring
◆
operator!=()