<string>
Defines the container template class basic_string and various supporting templates.
For more information about basic_string, see basic_string Class
namespace std {
template<class CharType>
class char_traits;
template<>
class char_traits<char>;
template<>
class char_traits<wchar_t>;
template<>
class char_traits<char16_t>;
template<>
class char_traits<char32_t>;
template<
class CharType,
class Traits = char_traits<CharType>,
class Allocator = allocator<CharType>
> class basic_string;
typedef basic_string<char> string;
typedef basic_string<wchar_t> wstring;
typedef basic_string<char16_t> u16string;
typedef basic_string<char32_t> u32string;
// NARROW FUNCTIONS
int stoi (
const string& _Str,
size_t *_Idx = 0,
int _Base = 10
);
long stol (
const string& _Str,
size_t *_Idx = 0,
int _Base = 10
);
unsigned long stoul (
const string& _Str,
size_t *_Idx = 0,
int _Base = 10
);
long long stoll (
const string& _Str,
size_t *_Idx = 0,
int _Base = 10
);
unsigned long long stoull (
const string& _Str,
size_t *_Idx = 0,
int _Base = 10
);
float stof (
const string& _Str,
size_t *_Idx = 0
);
double stod (
const string& _Str,
size_t *_Idx = 0
);
long double stold (
const string& _Str,
size_t *_Idx = 0
);
string to_string (long long _Val);
string to_string (unsigned long long _Val);
string to_string (long double _Val);
// WIDE FUNCTIONS
int stoi (
const wstring& _Str,
size_t *_Idx = 0,
int _Base = 10
);
long stol (
const wstring& _Str,
size_t *_Idx = 0,
int _Base = 10
);
unsigned long stoul (
const wstring& _Str,
size_t *_Idx = 0,
int _Base = 10
);
long long stoll (
const wstring& _Str,
size_t *_Idx = 0,
int _Base = 10
);
unsigned long long stoull (
const wstring& _Str,
size_t *_Idx = 0,
int _Base = 10
);
float stof (
const wstring& _Str,
size_t *_Idx = 0
);
double stod (
const wstring& _Str,
size_t *_Idx = 0
);
long double stold (
const wstring& _Str,
size_t *_Idx = 0
);
wstring to_wstring (long long _Val);
wstring to_wstring (unsigned long long _Val);
wstring to_wstring (long double _Val);
// TEMPLATE FUNCTIONS
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+ (
const basic_string<CharType, Traits, Allocator>& _Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+ (
const basic_string<CharType, Traits, Allocator>& _Left,
const CharType *_Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+ (
const basic_string<CharType, Traits, Allocator>& _Left,
CharType _Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+ (
const CharType *_Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator> operator+ (
CharType _Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+ (
const basic_string<CharType, Traits, Allocator>& _Left,
const basic_string<CharType, Traits, Allocator>&& _Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+ (
const basic_string<CharType, Traits, Allocator>&& _Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+ (
const basic_string<CharType, Traits, Allocator>&& _Left,
const basic_string<CharType, Traits, Allocator>&& _Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+ (
const basic_string<CharType, Traits, Allocator>&& _Left,
const CharType *_Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+ (
const basic_string<CharType, Traits, Allocator>&& _Left,
CharType _Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+ (
const CharType *_Left,
const basic_string<CharType, Traits, Allocator>&& _Right
);
template<class CharType, class Traits, class Allocator>
basic_string<CharType, Traits, Allocator>&& operator+ (
CharType _Left,
const basic_string<CharType, Traits, Allocator>&& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator== (
const basic_string<CharType, Traits, Allocator>& _Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator== (
const basic_string<CharType, Traits, Allocator>& _Left,
const CharType *_Right
);
template<class CharType, class Traits, class Allocator>
bool operator== (
const CharType *_Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator!= (
const basic_string<CharType, Traits, Allocator>& _Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator!= (
const basic_string<CharType, Traits, Allocator>& left,
const CharType *_Right
);
template<class CharType, class Traits, class Allocator>
bool operator!= (
const CharType *_Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator< (
const basic_string<CharType, Traits, Allocator>& _Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator< (
const basic_string<CharType, Traits, Allocator>& _Left,
const CharType *_Right
);
template<class CharType, class Traits, class Allocator>
bool operator< (
const CharType *_Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator>= (
const basic_string<CharType, Traits, Allocator>& _Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator>= (
const basic_string<CharType, Traits, Allocator>& _Left,
const CharType *_Right
);
template<class CharType, class Traits, class Allocator>
bool operator>= (
const CharType *_Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator> (
const basic_string<CharType, Traits, Allocator>& _Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator> (
const basic_string<CharType, Traits, Allocator>& _Left,
const CharType *_Right
);
template<class CharType, class Traits, class Allocator>
bool operator> (
const CharType *_Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator<= (
const basic_string<CharType, Traits, Allocator>& _Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
bool operator<= (
const basic_string<CharType, Traits, Allocator>& _Left,
const CharType *_Right
);
template<class CharType, class Traits, class Allocator>
bool operator<= (
const CharType *_Left,
const basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
void swap (
basic_string<CharType, Traits, Allocator>& _Left,
basic_string<CharType, Traits, Allocator>& _Right
);
template<class CharType, class Traits, class Allocator>
basic_ostream<CharType>& operator<< (
basic_ostream<CharType>& _OStream,
const basic_string<CharType, Traits, Allocator>& _Str
);
template<class CharType, class Traits, class Allocator>
basic_istream<CharType>& operator>> (
basic_istream<CharType>& _IStream,
basic_string<CharType, Traits, Allocator>& _Str
);
template<class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline (
basic_istream<CharType, Traits>& _IStream,
basic_string<CharType, Traits, Allocator>& _Str
);
template<class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline (
basic_istream<CharType, Traits>& _IStream,
basic_string<CharType, Traits, Allocator>& _Str,
CharType _Delimiter
);
template<class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline (
basic_istream<CharType, Traits>&& _IStream,
basic_string<CharType, Traits, Allocator>& _Str
);
template<class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline (
basic_istream<CharType, Traits>&& _IStream,
basic_string<CharType, Traits, Allocator>& _Str,
CharType _Delimiter
);
} // namespace std
Parameters
CharType
The template parameter that describes the character data type.Traits
The template parameter that describes any properties of the CharType character data.Allocator
The template parameter that describes the stored memory allocator object._Str
The basic_string that supports CharType character data._Val
The value to be converted._Idx
The index value of the first unconverted character._Base
The number base to use._IStream
The input stream that supports CharType character data._OStream
The output stream that supports CharType character data._Delimiter
The line delimiter._Left
The first (left) compare parameter, either a basic_string or character data._Right
The second (right) compare parameter, either a basic_string or character data.
Remarks
The C++ language and the Standard C++ Library support two types of strings:
Null-terminated character arrays often referred to as C strings.
Template class objects, of type basic_string, that handle all char-like template arguments.
Typedefs
A type that describes a specialization of the template class basic_string with elements of type char as a string. |
|
A type that describes a specialization of the template class basic_string with elements of type wchar_t as a wstring. |
|
A type that describes a specialization of the template class basic_string based on elements of type char16_t. |
|
A type that describes a specialization of the template class basic_string based on elements of type char32_t. |
Operators
Concatenates two string objects. |
|
Tests if the string object on the left side of the operator is not equal to the string object on the right side. |
|
Tests if the string object on the left side of the operator is equal to the string object on the right side. |
|
Tests if the string object on the left side of the operator is less than to the string object on the right side. |
|
Tests if the string object on the left side of the operator is less than or equal to the string object on the right side. |
|
A template function that inserts a string into the output stream. |
|
Tests if the string object on the left side of the operator is greater than to the string object on the right side. |
|
Tests if the string object on the left side of the operator is greater than or equal to the string object on the right side. |
|
A template function that extracts a string from the input stream. |
Specialized Template Functions
Exchanges the arrays of characters of two strings. |
|
Converts a character sequence to a double. |
|
Converts a character sequence to a float. |
|
Converts a character sequence to an integer. |
|
Converts a character sequence to a long double. |
|
Converts a character sequence to a long long. |
|
Converts a character sequence to an unsigned long. |
|
Converts a character sequence to an unsigned long long. |
|
Converts a value to a string. |
|
Converts a value to a wide string. |
Functions
Extract strings from the input stream line by line. |
Classes
A template class that describes objects that can store a sequence of arbitrary character-like objects. |
|
A template class that describes attributes associated with a character of type CharType |
Specializations
A struct that is a specialization of the template struct char_traits<CharType> to an element of type char. |
|
A struct that is a specialization of the template struct char_traits<CharType> to an element of type wchar_t. |
|
A struct that is a specialization of the template struct char_traits<CharType> to an element of type char16_t. |
|
A struct that is a specialization of the template struct char_traits<CharType> to an element of type char32_t. |
Requirements
Header: <string>
Namespace: std
See Also
Reference
Thread Safety in the Standard C++ Library