[Updated] Goldman Sachs Aptitude Test Questions and Answers
Practice List of TCS Digital Coding Questions !!!
Take 50+ FREE!! Online Data Interpretation Mock test to crack any Exams.

Program Discussion :: Strings

Home > Programs > Strings

27 / 60

Write an efficient program to implement itoa function.

Answer:

#include 

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;
}
/* Driver program to test implementation of itoa()*/
int main()
{
    char str[100];
    cout 

Asked In ::

Post Your Answer Here:

Language:

Post Your Reply Here:



Language:

Post Your Reply Here:



Language:

Post Your Reply Here: