home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume10 / c_cover / part02 / string.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-02-13  |  1.9 KB  |  110 lines

  1. /*------------------------------------------*\
  2.  | Return the length of string s, EXCLUDING    |
  3.  | the \0 at the end of it.                    |
  4. \*------------------------------------------*/
  5. StringLen(s)
  6. char *s;
  7. {
  8.     int Count = 0;
  9.  
  10.     while(*s++ != '\0')
  11.         Count++;
  12.  
  13.     return(Count);
  14. }
  15.  
  16.  
  17.  
  18.  
  19. /*----------------------------------------------*\
  20.  | Copy a string From to string To including    |
  21.  | the \0 at the end of string From.            |
  22. \*----------------------------------------------*/
  23. StringCopy(From, To)
  24. register char *From;
  25. register char *To;
  26. {
  27.     while((*To++ = *From++) != '\0');
  28.     return;
  29. }
  30.  
  31.  
  32.  
  33.  
  34. /*----------------------------------------------*\
  35.  | Ret 0 when strings equal, 1 when different    |
  36. \*----------------------------------------------*/
  37. StringDiff(s1, s2)
  38. char *s1;
  39. char *s2;
  40. {
  41.     while(*s1 == *s2) {
  42.         if(*s1 == '\0') {    /* and thus *s2 == '\0'    */
  43.             return(0);
  44.         }
  45.         s1++; s2++;
  46.     }
  47.     return(1);            /* strings differ    */
  48. }
  49.  
  50.  
  51.  
  52. /*----------------------------------------------*\
  53.  | Ret 0 when strings equal, 1 when different    |
  54.  | Not more than Len chars are compared            |
  55. \*----------------------------------------------*/
  56. StringNDiff(s1, s2, Len)
  57. char *s1;
  58. char *s2;
  59. int   Len;
  60. {
  61.     while(*s1 == *s2) {
  62.         Len--;
  63.         if(*s1 == '\0' || Len == 0) {    /* and thus *s2 == '\0'    */
  64.             return(0);
  65.         }
  66.         s2 += 1;
  67.         s1 += 1;
  68.     }
  69.     return(1);            /* strings differ    */
  70. }
  71.  
  72.  
  73.  
  74. /*--------------------------------------*\
  75.  | Put a '\0' at the end of string s    |
  76. \*--------------------------------------*/
  77. void
  78. NullEnd(s, MaxLen)
  79. register char *s;
  80. register int   MaxLen;
  81. {
  82.     while(*s != '\n' && *s != '\r' && *s != '\0' && MaxLen--)
  83.         s++;
  84.  
  85.     *s = '\0';
  86.     return;
  87. }
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94. /*--------------------------------------*\
  95.  | Check if arg CheckChar is any of the    |
  96.  | characters in array List.            |
  97. \*--------------------------------------*/
  98. AnyChar(CheckChar, List)
  99. char  CheckChar;
  100. char *List;
  101. {
  102.     while(*List != '\0') {
  103.         if(CheckChar == *List)
  104.             return(1);
  105.  
  106.         List++;
  107.     }
  108.     return(0);
  109. }
  110.