// // Tools for USB HID Autofire // void strrev(char* arr, int start, int end) { char temp; if (start >= end) return; temp = *(arr + start); *(arr + start) = *(arr + end); *(arr + end) = temp; start++; end--; strrev(arr, start, end); } char *itoa(int number, char *arr, int base) { int i = 0, r, negative = 0; if (number == 0) { arr[i] = '0'; arr[i + 1] = '\0'; return arr; } if (number < 0 && base == 10) { number *= -1; negative = 1; } while (number != 0) { r = number % base; arr[i] = (r > 9) ? (r - 10) + 'a' : r + '0'; i++; number /= base; } if (negative) { arr[i] = '-'; i++; } strrev(arr, 0, i - 1); arr[i] = '\0'; return arr; }