Program Discussion :: Basics
2 / 279
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 ::
Language:

Ajay
15 Jun, 2017 10:24 AM
<!DOCTYPE html>
<html>
<body>
<?php
function itoa() {
$arr =array(104 ,101,108,108,111); // input array
$arrlength= count ($arr) ;
echo "ASCII code for given values is :<br/>";
for( $x=0;$x< $arrlength; $x++) // loop for reading the input array
{
$var= chr($arr[$x]);
echo $arr[$x]." =>". $var."<br/> ";
$var++;
}
}
itoa() ;
?>
</body>
</html>
Language:

Lokeshwari
7 Jul, 2017 9:30 AM
#include <stdlib.h> // for itoa() call
#include <stdio.h>
int main() {
int num = 145;
char buf[5];
// convert 123 to string [buf]
itoa(num, buf, 10);
// print our string
printf("%s\n", buf);
return 0;
}
Language:

Neel
7 Jul, 2017 9:30 AM
#include <iostream>
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 << "Base:10 " << itoa(1567, str, 10) << endl;
cout << "Base:10 " << itoa(-1567, str, 10) << endl;
cout << "Base:2 " << itoa(1567, str, 2) << endl;
cout << "Base:8 " << itoa(1567, str, 8) << endl;
cout << "Base:16 " << itoa(1567, str, 16) << endl;
return 0;
}