P
pauldepstein
The following description of atoi is pasted from cplusplus.com. My
question is after the pasting.
***** PASTING BEGINS HERE ******
int atoi ( const char * str ); <cstdlib>
Convert string to integer
Parses the C string str interpreting its content as an integral
number, which is returned as an int value.
The function first discards as many whitespace characters as necessary
until the first non-whitespace character is found. Then, starting from
this character, takes an optional initial plus or minus sign followed
by as many numerical digits as possible, and interprets them as a
numerical value.
The string can contain additional characters after those that form the
integral number, which are ignored and have no effect on the behavior
of this function.
If the first sequence of non-whitespace characters in str is not a
valid integral number, or if no such sequence exists because either
str is empty or it contains only whitespace characters, no conversion
is performed.
Parameters
str
C string beginning with the representation of an integral number.
Return Value
On success, the function returns the converted integral number as an
int value.
If no valid conversion could be performed, a zero value is returned.
If the correct value is out of the range of representable values,
INT_MAX or INT_MIN is returned.
**** PASTING ENDS HERE ***************
I don't know whether I'm missing something but this function seems to
have a serious flaw. If the value returned is 0, it seems that the
user can't know if this means no valid conversion or this means the
string begins with "0".
Any comments?
Paul Epstein
question is after the pasting.
***** PASTING BEGINS HERE ******
int atoi ( const char * str ); <cstdlib>
Convert string to integer
Parses the C string str interpreting its content as an integral
number, which is returned as an int value.
The function first discards as many whitespace characters as necessary
until the first non-whitespace character is found. Then, starting from
this character, takes an optional initial plus or minus sign followed
by as many numerical digits as possible, and interprets them as a
numerical value.
The string can contain additional characters after those that form the
integral number, which are ignored and have no effect on the behavior
of this function.
If the first sequence of non-whitespace characters in str is not a
valid integral number, or if no such sequence exists because either
str is empty or it contains only whitespace characters, no conversion
is performed.
Parameters
str
C string beginning with the representation of an integral number.
Return Value
On success, the function returns the converted integral number as an
int value.
If no valid conversion could be performed, a zero value is returned.
If the correct value is out of the range of representable values,
INT_MAX or INT_MIN is returned.
**** PASTING ENDS HERE ***************
I don't know whether I'm missing something but this function seems to
have a serious flaw. If the value returned is 0, it seems that the
user can't know if this means no valid conversion or this means the
string begins with "0".
Any comments?
Paul Epstein