ltoa() — Convert long into a string
Standards
Standards / Extensions | C or C++ | Dependencies |
---|---|---|
z/OS® UNIX | both | z/OS V1R5 |
Format
#define _OPEN_SYS_ITOA_EXT
#include <stdlib.h>
char * ltoa(long l, char * buffer, int radix);
General description
The ltoa() function
coverts the long l into a character string.
The string is placed in the buffer passed, which must be large enough
to hold the output. The radix values can be OCTAL, DECIMAL, or HEX.
When the radix is DECIMAL, ltoa() produces the same result as the
following statement:
(void) sprintf(buffer, "%ld", l);
with
buffer the returned character string. When the radix is OCTAL, ltoa()
formats long l into an unsigned octal constant.
When the radix is HEX, ltoa() formats long l into
an unsigned hexadecimal constant. The hexadecimal value will include
lower case abcdef, as necessaryUsage note
This is a non-standard function. Even though the prototype given is commonly used by compilers on other platforms, there is no guarantee that this function will behave the same on all platforms, in all cases. You can use this function to help port applications from other platforms, but you should avoid using it when writing new applications, in order to ensure maximum portability.
Returned value
String pointer (same as buffer) will be returned. When passed an invalid radix argument, function will return NULL and set errno to EINVAL.
Example
CELEBL29
/* CELEBL29
This example reads a long int and formats it to decimal, unsigned
octal, unsigned hexadecimal constants converted to a character
string.
*/
#define _OPEN_SYS_ITOA_EXT
#include <stdio.h>
#include <stdlib.h>
int main ()
{
long i;
char buffer [sizeof(long)*8+1];
printf ("Enter a number: ");
if (scanf ("%ld",&i) == 1) {
ltoa (i,buffer,DECIMAL);
printf ("decimal: %s\n",buffer);
ltoa (i,buffer,HEX);
printf ("hexadecimal: %s\n",buffer);
ltoa (i,buffer,OCTAL);
printf ("octal: %s\n",buffer);
}
return 0;
}
Output
If the input is 1234, then
the output should be:
decimal: 1234
hexadecimal: 4d2
octal: 2322