// C program to implement itoa() #include <stdbool.h> #include <stdio.h> // A utility function to reverse a string void reverse(char str[], int length) { int start = 0; int end = length - 1; while (start < end) { char temp = str[start]; str[start] = str[end]; str[end] = temp; end--; start++; } } // Implementation of citoa() char* citoa(int num, char* str, int base) { int i = 0; bool isNegative = false; /* Handle 0 explicitly, 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; } // Driver program to test implementation of itoa() int main() { char str[100]; printf("Number: %d\nBase: %d\tConverted String: %s\n", 1567, 10, citoa(1567, str, 10)); printf("Base: %d\t\tConverted String: %s\n", 2, citoa(1567, str, 2)); printf("Base: %d\t\tConverted String: %s\n", 8, citoa(1567, str, 8)); printf("Base: %d\tConverted String: %s\n", 16, citoa(1567, str, 16)); return 0; }#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int a=54325; char buffer[20]; itoa(a,buffer,2); // here 2 means binary printf("Binary value = %s\n", buffer); itoa(a,buffer,10); // here 10 means decimal printf("Decimal value = %s\n", buffer); itoa(a,buffer,16); // here 16 means Hexadecimal printf("Hexadecimal value = %s\n", buffer); return 0; }