home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / diverses / text_cla / wc.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-23  |  1.1 KB  |  76 lines

  1. /* wc - unix word count utility output is    lines words chars  */
  2.  
  3.  
  4. /* grep  xxx  * | wc    or  cat xx | wc  if unix
  5.                         or  type xx | wc  if dos
  6.  
  7. */
  8.  
  9.  
  10.  
  11. #include <stdio.h>
  12.  
  13. #define MAX_BUF  255
  14.  
  15. main(int argc,char * argv[])
  16. {
  17.  
  18.    long   lLines = 0;
  19.    long   lWords = 0;
  20.    long   lChars = 0;
  21.  
  22.    int    iLen;
  23.    int    iCnt;
  24.    
  25.    char   cChar;
  26.    char   cPrevChar;
  27.  
  28.    char   szBuffer[MAX_BUF + 1];
  29.  
  30.    char  * pc;
  31.  
  32.  
  33.  
  34.    while(!feof(stdin))
  35.    {
  36.       pc = fgets(szBuffer,MAX_BUF,stdin);
  37.  
  38.       if(pc == NULL)
  39.          break;
  40.       
  41.  
  42.       iLen = strlen(szBuffer);
  43.  
  44.       if(szBuffer[iLen -1] == '\n')
  45.          szBuffer[iLen -1] = '\0';
  46.  
  47.       lChars += (long) strlen(szBuffer);
  48.  
  49.       
  50.       cPrevChar = 0;
  51.  
  52.       for(iCnt = 0; iCnt < iLen; iCnt++)
  53.       {
  54.          cChar = szBuffer[iCnt];
  55.  
  56.          if(
  57.             (cChar != ' ') && 
  58.             (cPrevChar == ' ')
  59.            )
  60.             lWords++;
  61.  
  62.          cPrevChar = cChar;
  63.       }
  64.  
  65.       
  66.       lLines++;
  67.    
  68.    }
  69.  
  70.  
  71.    printf("%ld %ld %ld\n", lLines, lWords, lChars);
  72.  
  73.    return(0);
  74. }
  75.  
  76.