작은숲:위키노트/C 언어 예제/파일의 단어 수 세기

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
Utolee90 (토론 | 기여)님의 2021년 3월 28일 (일) 12:51 판 (문자열 찾아 바꾸기 - "<source" 문자열을 "<syntaxhighlight" 문자열로)

<syntaxhighlight lang="c"> /**

* Copyright (c) 2001,2002 Yoon, Hyunho <hhyoon@kldp.org>
* http://mooo.org
* ----------------------------------------------------------------------
*
* LICENSE
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software 
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <string.h>
  4. define MAXLINE 256

int main(int argc, char *argv[]) { unsigned int i, begin_word = 0, count = 0;

   char fn[MAXLINE], buffer[MAXLINE];
   FILE *fp;
   if (argc > 1)
       strcpy(fn, argv[1]);
   else
       strcpy(fn, "data266-1.txt");
   if ((fp = fopen(fn, "r")) == NULL) {
       printf("Cannot open the file: %s\n", fn);
       exit(0);
   }
   while (!feof(fp)) {
       if (fgets(buffer, MAXLINE, fp) == NULL) break;
       for (i = 0; i < strlen(buffer); i++) {
           if (buffer[i] == ' ' || buffer[i] == '\n' || buffer[i] == '\t') {
               if (begin_word) {
                   count++;
                   begin_word = 0;
               }
           }
           else {
               if (!begin_word)
                   begin_word = 1;
           }
       }
   }
   fclose(fp);
   printf("The number of words in \"%s\" is %d.\n", fn, count);
   return 0;

}</source>

이 작은숲 문서의 출처는 위키노트의 위키노트/C 언어 예제/파일의 단어 수 세기 문서입니다.