Data Type C

/*
Beginning C, Third Edition
 By Ivor Horton
 ISBN: 1-59059-253-0
 Published: Apr 2004
 Publisher: apress
*/
#include 
/* Convert an integer to a string        */
/* Caller must allocate string array     */
/* Function returns the string to allow  */
/* Use of the function in an expression. */
char* itoa(int n, char str[])
{
  int i = 0;               /* Loop counter              */
  int negative = 0;        /* Indicate negative integer */
  int length = 0;          /* Length of string          */
  int temp = 0;            /* Temporary storage         */
 
  if(negative = (n<0))     /* Is it negative?  */
    n = -n;                /* make it positive */
  /* Generate digit characters in reverse order */
  do
  {
    str[i++] = '0'+n%10;    /* Create a rightmost digit        */
    n /= 10;                /* Remove the digit                */              
  }while(n>0);              /* Go again if there's more digits */
  if(negative)              /* If it was negative */
    str[i++] = '-';         /* Append minus       */
  str[i] = '\0';            /* Append terminator  */
  length = i;               /* Save the length    */
  /* Now reverse the string in place */
  /* by switching first and last,    */
  /* second and last but one, etc    */
  for(i = 0 ; i  {
    temp = str[i];
    str[i] = str[length-i-1];
    str[length-i-1] = temp;
  }
  return str;                /* Return the string */
}
void main()
{
   char str[15];              /* Stores string representation of integer */
   long testdata[] = { 30L, -98L, 0L, -1L, 999L, -12345L};  
   int i = 0;                /* Loop control variable                    */
   for (i = 0 ; i< sizeof testdata/sizeof(long) ; i++)
     printf("Integer value is %d, string is %s\n", testdata[i], itoa(testdata[i],str));
}