itob.c
contents ::
  address.c
  atquick_sort.c
  bits.c
  countspace.c
  ctof.c
  hextoint.c
  hist.c
  indexof.c
  itob.c
  linkage.c
  lzw.c
  maxval.c
  merge.c
  merge_sort.c
  peof.c
  pointer.c
  quick2.c
  quick.c
  quick_sort.c
  reverse.c
  rftoc.c
  rmultiblank.c
  rtabs.c
  squeeze.c
  structoo.c
  syscall.c
  tempfunc.c
  tfc.c
  word.c

#include <stdio.h>

void itob(char t[], char s[], int b);
void reverse(char s[]);
int my_strlen(char s[]);
int power(int n, int b);
int stoi(char s[]);

main(){
  int c=0;
  int z=0;
  char t[8];
  char s[8];
  int base = 16;
  printf("\t\tvalues\tbase\n", s);
  while((c=getchar())!=EOF){
    do{
      t[z]=c;
      z++;
    }while((c=getchar())!='\n');
    t[z]='\0';
    printf("original:\t%s\t10\n", t);
    itob(t, s, base);
    printf("after:\t\t%s\t%d\n\t\t-----------------------\n", s, base);
    z=0;
    
  }

  /* char s[] = "123";
     int i = 123;
     printf("original:\t%d\n", i);
     itob(i, s, 16);
     printf("after:\t%s\n", s);
  */
  return 0;
}

void itob(char t[], char s[], int b){
  int i, r;
  int y=0;
  int z=1;
  int j;
  int q=0;
  int n = stoi(t);
  r=0;

  for(i=1, j=0; n>0; i++, j++){
    y=power(i,b);
    r=n%y;
    s[j]=((q=r/z+'0') < 10+'0') ? r/z+'0' : r/z-10+'A';
    n-=r;
    z=y;
  }
  s[j]='\0';
  reverse(s);

}

int stoi(char s[]){
  int i,j,r;
  i=1;
  r=0;

  for(j=my_strlen(s)-1; j>=0; j--){
    r+=((s[j]-'0')*i);
    i*=10;
  }
  //  printf("stoi r,strlen,string:\t\t%d\t%d\t%s\n", r,my_strlen(s)-1, s);
  return r;
}

void reverse(char s[]){
  int c,i,j;
  for(i=0,j=my_strlen(s)-1; i<j; i++, j--){
    c=s[i];
    s[i]=s[j];
    s[j]=c;
  }
}

int my_strlen(char s[]){
  int i=0;
  while(s[i]!='\0')
   i++;
  return i;
}

int power(int i, int b){
  int j, p;
  p=1;
  if(i>0)
    for(j=1; j<=i; j++)
      p=p*b;
  return p;
}



James Little