This blog post will teach you how to Implement your own itoa() function in C. The itoa() function is a non-standard function that converts an integer into a null-terminated string. I have already written a blog post on how to convert an integer to a string if you want you can check, an efficient way to convert an int to a string.
Now let’s see the implementation of itoa in C. But before writing an example code I want to suggest that you should use the standard library function because they have a very efficient and tailored implementation of the itoa() function.
#include<stdio.h> //function to reverse a string void reverse(char str[], int length) { int start; int end = length -1; for(start = 0; start < end; ++start, --end) { const char ch = str[start]; str[start] = str[end]; str[end] = ch; } } //Implemented own itoa function char* itoa(int num, char* str, int base) { int i = 0; char isNegNum = 0; /*Handle 0 explicitly, otherwise empty string is printed for 0 */ if (num == 0) { str[i++] = '0'; str[i] = '\0'; } else { // In library itoa function -ve numbers handled only with // base 10. SO here we are also following same concept if ((num < 0) && (base == 10)) { isNegNum = 1; num = -num; // make num positive } // Process individual digits do { const int rem = (num % base); str[i++] = (rem > 9)? ((rem-10) + 'a') : (rem + '0'); num = num/base; } while (num != 0); // If number is negative, append '-' if (isNegNum) { str[i++] = '-'; } // Append string terminator str[i] = '\0'; // Reverse the string reverse(str, i); } return str; } int main() { char str[100] = {0}; printf("Base:10 %s\n", itoa(2324, str, 10)); printf("Base:10 %s\n", itoa(-2324, str, 10)); printf("Base:16 %s\n", itoa(2324, str, 16)); printf("Base:8 %s\n", itoa(2324, str, 8)); printf("Base:2 %s\n", itoa(2324, str, 2)); return 0; }
Output:
Base:10 2324 Base:10 -2324 Base:16 914 Base:8 4424 Base:2 100100010100
Recommended Post:
- C Programming Courses And Tutorials.
- CPP Programming Courses And Tutorials.
- Python Courses and Tutorials.
- C program to convert a given number to words.
- Use of strncat in C.
- Stringizing operator (#) in C.
- C String Literals with Its Types.
- How to use atoi() and how to make your own atoi()?
- Token Pasting Operator in C/C++ programming.
- How to convert a string to an integer in C?
- C program to trim trailing white spaces from a string.
- C Program to convert uppercase string to lowercase string.