G
Gil
I have a string :
string A = "2";
I need to get it's integer value :
// ??
int val = A ; // ??
string A = "2";
I need to get it's integer value :
// ??
int val = A ; // ??
assuming you include stdlib.h and the string-class provides thestring A = "2";
I need to get it's integer value :
// ??
int val = A ; // ??
Gil said:I have a string :
string A = "2";
I need to get it's integer value :
Patrik Stellmann said:assuming you include stdlib.h and the string-class provides the
cast-operator to const char*:
int val = atoi(string);
Gil said:I have a string :
string A = "2";
I need to get it's integer value :
// ??
int val = A ; // ??
I have a string :
string A = "2";
I need to get it's integer value :
// ??
int val = A ; // ??
Sorry, but both of these assumptions are incorrect. The standard header to
include is <cstdlib> nowadays. Furthermore the string class does not provide
an implicit const char* conversion but rather the c_str() member function.
int val = atoi( A.c_str() );
Sorry, but both of these assumptions are incorrect. The standard header to
int val = atoi( A.c_str() );
should do the trick.
Jack Klein said:[SNIP]
No, not really. The ato... functions from the C library should never
be used unless you have already checked the character array and know
that it will not result in a numeric value outside the range of the
given type, in which case you might as well do the conversion yourself
while you are walking the string.
All of the ato... functions generate undefined behavior if the text
string represents a numerical value outside the range of the type.
That is exactly why the strto... functions were added during C
standardization. They have defined behavior for all inputs, other
than being passed a null pointer.
Old Wolf said:[SNIP]
He didn't mention any details about his string class. Maybe you are
confusing it with std::string ?
int val = std::atoi( A.c_str() );
nowadays.
Chris said:The OP declared his string using a class named "string". Without any further
specification it is valid (at least IMHO) to presume that the standard
string class is meant. Anyway, naming your own string class like the
standard one is certainly not the cleverest idea, don't you think?
Default said:Chris Theis wrote:
[redacted]
I don't even think it's a legal identifier. I believe that in C++, like
C, all identifiers beginning with "str" and followed by a letter are
reserved.
He's not quite got it right. The C standard reserves external symbols thatred floyd said:Default said:Chris Theis wrote:
[redacted]
I don't even think it's a legal identifier. I believe that in C++, like
C, all identifiers beginning with "str" and followed by a letter are
reserved.
Say what??????????????? Can you quote chapter and verse from the Holy
Standard (or the Holy C standard) on that one?
Ron said:He's not quite got it right. The C standard reserves external symbols that
start with str followed by a lower case letter for future use.
You can use them internal to a function or class (or other internal linkage) or
in a namespace other than std or the global namespace.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.