Do you know that? $52 average hourly rates for Video production freelance next

How can I convert a number to a string?

The standard C library provides several functions for converting numbers of all formats (integers, longs,
floats, and so on) to strings and vice versa. One of these functions, itoa(), is used here to illustrate how an
integer is converted to a string:

#include <stdio.h>
#include <stdlib.h>
void main(void);
void main(void)
{
     int num = 100;
     char str[25];
     itoa(num, str, 10);
     printf("The number 'num' is %d and the string 'str' is %s.\n",
                 num, str);
}

Notice that the  itoa() function takes three arguments: the first argument is the number you want to convert
to the string, the second is the destination string to put the converted number into, and the third is the base,
or radix, to be used when converting the number. The preceding example uses the common base 10 to
convert the number to the string.

The following functions can be used to convert integers to strings:

 Function Name Purpose
  itoa()-Converts an integer value to a string.
  ltoa()-Converts a long integer value to a string.
  ultoa()-Converts an unsigned long integer value to a string.

Note that the  itoa(),  ltoa(), and  ultoa() functions are not ANSI compatible. An alternative way to convert an integer to a string (that is ANSI compatible) is to use the sprintf() function, as in the following example:

#include <stdio.h>
#include <stdlib.h>
void main(void);
void main(void)
{
     int num = 100;
     char str[25];
     sprintf(str, "%d", num);
     printf("The number 'num' is %d and the string 'str' is %s.\n",
                 num, str);
}

When floating-point numbers are being converted, a different set of functions must be used. Here is an
example of a program that uses the standard C library function fcvt() to convert a floating-point value to
a string:

#include <stdio.h>
#include <stdlib.h>
void main(void);
void main(void)
{
     double num = 12345.678;
     char* str;
     int dec_pl, sign, ndigits = 3;    /* Keep 3 digits of precision. */
     str = fcvt(num, ndigits, &dec_pl, &sign);  /* Convert the float
                                                           to a string. */
     printf("Original number:  %f\n", num);     /* Print the original
                                                   floating-point
                                                   value. */
     printf("Converted string: %s\n", str);     /* Print the converted
                                                   string's value */
     printf("Decimal place:    %d\n", dec_pl);  /* Print the location of
                                                   the decimal point. */
     printf("Sign:             %d\n", sign);    /* Print the sign.
                                                   0 = positive,
                                                   1 = negative. */
}

Notice that the fcvt() function is quite different from the itoa() function used previously. The fcvt()
function takes four arguments. The first argument is the floating-point value you want to convert. The
second argument is the number of digits to be stored to the right of the decimal point. The third argument
is a pointer to an integer that is used to return the position of the decimal point in the converted string. The
fourth argument is a pointer to an integer that is used to return the sign of the converted number (0 is positive,
1 is negative).

Note that the converted string does not contain the actual decimal point. Instead, the fcvt() returns the
position of the decimal point as it would have been if it were in the string. In the preceding example, the  dec_pl
integer variable contains the number 5 because the decimal point is located after the fifth digit in the resulting
string. If you wanted the resulting string to include the decimal point, you could use the gcvt() function
(described in the following table).

The following functions can be used to convert floating-point values to strings:

 Function Purpose
 ecvt()-Converts a double-precision floating-point value to a string without an embedded decimal point.
 fcvt()-Same as ecvt(), but forces the precision to a specified number of digits.
 gcvt()-Converts a double-precision floating-point value to a string with an embedded decimal point.