9 posts
How to represent an integer as a char* (aka string)
Edited by mindspyke on
Hi I'm working on text rendering for my game and I was wondering.. how can I represent any given signed 32 bit integer as a series of ASCII characters?

People online seem to recommend sprintf but I'm curious as to how I could code this myself.

Any suggestions?

Thx
44 posts
How to represent an integer as a char* (aka string)
Edited by joe513 on
Take a look here to get you started.
https://www.geeksforgeeks.org/implement-itoa/

Code below is from the link above.
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 // Implementation of itoa() char* itoa(int num, char* str, int base) { int i = 0; bool isNegative = false; /* Handle 0 explicitely, otherwise empty string is printed for 0 */ if (num == 0) { str[i++] = '0'; str[i] = '\0'; return str; } // In standard itoa(), negative numbers are handled only with // base 10. Otherwise numbers are considered unsigned. if (num < 0 && base == 10) { isNegative = true; num = -num; } // Process individual digits while (num != 0) { int rem = num % base; str[i++] = (rem > 9)? (rem-10) + 'a' : rem + '0'; num = num/base; } // If number is negative, append '-' if (isNegative) str[i++] = '-'; str[i] = '\0'; // Append string terminator // Reverse the string reverse(str, i); return str; }