Wie wärs damit?
es gibt auch ne C-Funktion die ziemlich das gleiche macht, siehe itoa()
Code:
int IntToChars (char* buffer, int value, int spaceonbuffer, int countbase)
{
int workvalue = value;
int i;
int valuetowrite;
int end_i = 0;
if (value < 0)
{
workvalue = -value;
end_i = 1;
buffer[0] = '-';
}
for (i = spaceonbuffer - 1; i >= end_i; i--)
{
valuetowrite = (workvalue % countbase);
if (workvalue == 0)
{
if (i == (spaceonbuffer - 1))
{
buffer[i] = 48; // ASCII 0
} else {
buffer[i] = 32; // ASCII SPACE
}
} else {
if (valuetowrite > 9)
{
buffer[i] = valuetowrite + 55; // ASCII A-Z
} else {
buffer[i] = valuetowrite + 48; // ASCII of that character
}
};
workvalue = (workvalue - valuetowrite) / countbase;
}
return (workvalue); //this should be zero if enough space on buffer!
//otherwise it contains the digits not printed out
}
Lesezeichen