Consider an example of converting a string
to an integral value. Assuming the string
:
string s( "100hello" );
the following statement converts the beginning of the string to the int
value 100
and stores that value in convertedInt:
int convertedInt = stoi( s );
Each function that converts a string
to an integral type actually receives three parameters—the last two have default arguments. The parameters are:
• A string
containing the characters to convert.
• A pointer to a size_t
variable. The function uses this pointer to store the index of the first character that was not converted. The default argument is a null pointer, in which case the function does not store the index.
• An int
from 2 to 36 representing the number’s base—the default is base 10.
So, the preceding statement is equivalent to
int convertedInt = stoi( s, nullptr, 10 );
Given a size_t
variable named index
, the statement:
int convertedInt = stoi( s, &index, 2 );
converts the binary number "100"
(base 2) to an int
(100 in binary is the int
value 4) and stores in index
the location of the string’s letter "h"
(the first character that was not converted).
3.145.36.221