tools.c 811 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // Tools for USB HID Autofire
  3. //
  4. void strrev(char* arr, int start, int end) {
  5. char temp;
  6. if(start >= end) return;
  7. temp = *(arr + start);
  8. *(arr + start) = *(arr + end);
  9. *(arr + end) = temp;
  10. start++;
  11. end--;
  12. strrev(arr, start, end);
  13. }
  14. char* itoa(int number, char* arr, int base) {
  15. int i = 0, r, negative = 0;
  16. if(number == 0) {
  17. arr[i] = '0';
  18. arr[i + 1] = '\0';
  19. return arr;
  20. }
  21. if(number < 0 && base == 10) {
  22. number *= -1;
  23. negative = 1;
  24. }
  25. while(number != 0) {
  26. r = number % base;
  27. arr[i] = (r > 9) ? (r - 10) + 'a' : r + '0';
  28. i++;
  29. number /= base;
  30. }
  31. if(negative) {
  32. arr[i] = '-';
  33. i++;
  34. }
  35. strrev(arr, 0, i - 1);
  36. arr[i] = '\0';
  37. return arr;
  38. }