home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_100 / 183_01 / ctools.c < prev    next >
C/C++ Source or Header  |  1984-07-14  |  1KB  |  83 lines

  1. #include "stdio.h"
  2.  
  3. itoa(n,s)
  4. char s[];
  5. int n;
  6. {
  7.  int i = 0, sign;
  8.  
  9.  if ( (sign = n) < 0 )  n = -n;
  10.  
  11.  do { s[i++] = n%10 + '0'; 
  12.     } while ( (n /= 10) > 0 );
  13.  
  14.  if ( sign < 0 )  s[i++] = '-';
  15.  s[i] = '\0';
  16.  reverse(s);
  17. }
  18.  
  19. ltoa(n,s)
  20. char s[];
  21. long n;
  22. {
  23.  int i = 0;
  24.  long sign;
  25.  
  26.  if ( (sign = n) < 0 )  n = -n;
  27.  
  28.  do { s[i++] = n%10 + '0'; 
  29.     } while ( (n /= 10) > 0 );
  30.  
  31.  if ( sign < 0 )  s[i++] = '-';
  32.  s[i] = '\0';
  33.  reverse(s);
  34. }
  35.  
  36. reverse(s)
  37. char s[];
  38. {
  39.  int c, i, j;
  40.  
  41.  for ( i=0, j = strlen(s)-1;   i < j;   i++, j-- )
  42.    {  c    = s[i];
  43.       s[i] = s[j];
  44.       s[j] = c;
  45.    }
  46. }
  47.  
  48. fstrn(s1,s2)
  49. char s1[], s2[];
  50. {
  51. int i, k = 0, l1, l2;
  52. short f1 = FALSE, f2 = TRUE;
  53.  
  54. if ( (l1 = strlen(s1)) < (l2 = strlen(s2)) ) return(0);
  55.  
  56. if ( !strncmp(s1,s2,l2) ) return(1);
  57.  
  58. while ( k < l1 )
  59. {
  60.   for (i = k; i < l1; i++) 
  61.     {  if ( s1[i] == s2[0] )
  62.         {  f1 = TRUE;
  63.            k = i;
  64.            break;  }
  65.     }
  66.  
  67.   if ( !f1 ) return(0);
  68.   if ( (l1 - k) < l2 ) return(0);
  69.  
  70.   for (i = 0; i < l2; i++)
  71.     {  if ( s1[i+k] != s2[i] ) f2 = FALSE; }
  72.  
  73.   if ( f2 ) return(1);
  74.   
  75. k++;
  76. f1 = FALSE;
  77. f2 = TRUE;
  78. }
  79.  
  80. return(0);
  81.  
  82. }
  83.