IOT_GRZYBKI
/
server2
code for gateway node connecting by wifi with backend and by radio with sensor nodes
Diff: itoa.cpp
- Revision:
- 0:544925185af9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/itoa.cpp Thu Jan 24 16:27:29 2019 +0000 @@ -0,0 +1,59 @@ + +#include "itoa.h" +#include <algorithm> + +using namespace std; +/* A utility function to reverse a string */ +void reverse(char str[], int length) +{ + int start = 0; + int end = length -1; + while (start < end) + { + swap(*(str+start), *(str+end)); + start++; + end--; + } +} + +// 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; +} \ No newline at end of file