Weston Cerny wrote:
Levi Pearson wrote:
Steve <[EMAIL PROTECTED]> writes:
I came up with 2 solutions which both amounted to roughly the same
code.
std::string itoa(int in){
std::stringstream out;
out << in;
return(out.str());
}
and
char* itoa(int in){
std::stringstream out;
out << in;
return(out.rdbuf.c_str());
}
So my question is, what is wrong with this method (I haven't tested it
so there may be a minor syntax error, but that aside)?
What's wrong with that method is that it's using the standard library,
which was explicitly not available. C++ kind of hides the fact that
you're essentially calling itoa() when you do out << in there, once
you go through the overloaded function that implements <<, etc.
So, try doing it again in plain C without using any standard library
functions.
--Levi
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/
What about and I am not a C or C++ person so i'll avoid the char*
discussion and just use string to denote the operations?
string itoa(int in) {
string ret = "";
int current = in;
while (current > 0 && current %= 10)
{
ret = (char)((int)current + (int)'0') + ret;
current /= 10;
}
return ret;
}
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/
Oops i'm double using my variable and not checking my bounds correctly
for a negative number.
string itoa(int in) {
string ret = "";
int current = in;
int digit = 0;
while (current != 0 && digit = current % 10)
{
ret = (char)(digit+ (int)'0') + ret;
current /= 10;
}
return ret;
}
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/