wc.c

来自「语法分析器 完成从c/c++向C++转变」· C语言 代码 · 共 76 行

C
76
字号
/* wc - unix word count utility output is    lines words chars  */


/* grep  xxx  * | wc    or  cat xx | wc  if unix
                        or  type xx | wc  if dos

*/



#include <stdio.h>

#define MAX_BUF  255

main(int argc,char * argv[])
{

   long   lLines = 0;
   long   lWords = 0;
   long   lChars = 0;

   int    iLen;
   int    iCnt;
   
   char   cChar;
   char   cPrevChar;

   char   szBuffer[MAX_BUF + 1];

   char  * pc;



   while(!feof(stdin))
   {
      pc = fgets(szBuffer,MAX_BUF,stdin);

      if(pc == NULL)
         break;
      

      iLen = strlen(szBuffer);

      if(szBuffer[iLen -1] == '\n')
         szBuffer[iLen -1] = '\0';

      lChars += (long) strlen(szBuffer);

      
      cPrevChar = 0;

      for(iCnt = 0; iCnt < iLen; iCnt++)
      {
         cChar = szBuffer[iCnt];

         if(
            (cChar != ' ') && 
            (cPrevChar == ' ')
           )
            lWords++;

         cPrevChar = cChar;
      }

      
      lLines++;
   
   }


   printf("%ld %ld %ld\n", lLines, lWords, lChars);

   return(0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?