Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.51 KB | None | 0 0
  1. #include "es4A.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. int wc(const char *filename, int *chars, int *words, int *lines){
  6.  
  7.   FILE* fp;
  8.   char* line_buf = NULL;
  9.   size_t line_buf_size = 0;
  10.   int lineCount = 0;
  11.   int charCount = 0;
  12.   int wordsCount = 0;
  13.   ssize_t line_size;
  14.   int i, x;
  15.   int lineCharCount;
  16.   int previousIsChar;
  17.  
  18.   printf("ciao\n");
  19.  
  20.   fp = fopen(filename, "r");
  21.   x = 0;
  22.   printf("ho aperto il file %s\n", filename);
  23.  
  24.   if(fp){
  25.  
  26.     line_size = getline(&line_buf, &line_buf_size, fp);
  27.  
  28.     while (line_size >= 0){
  29.  
  30.         lineCharCount = 0;
  31.         previousIsChar = 0;
  32.         /*printf("line_size: %zul\n", line_buf_size);*/
  33.  
  34.         for(i = 0; (size_t)i < line_buf_size; i++){
  35.           lineCharCount += 1;
  36.  
  37.           if (line_buf[i] == ' ' || line_buf[i] == '\n' || line_buf[i] == '\r'){
  38.             if (previousIsChar == 1){
  39.               wordsCount += 1;
  40.               previousIsChar = 0;
  41.             }
  42.           } else {
  43.             if(previousIsChar == 0 && (size_t)i == line_buf_size - 1){
  44.               wordsCount += 1;
  45.             }
  46.  
  47.             previousIsChar = 1;
  48.           }
  49.         }
  50.         if (lineCharCount > 0){
  51.           lineCount += 1;
  52.           charCount +=lineCharCount;
  53.         }
  54.         line_size = getline(&line_buf, &line_buf_size, fp);
  55.     }
  56.  
  57.     fclose(fp);
  58.     *chars = charCount;
  59.     *lines = lineCount;
  60.     *words = wordsCount;
  61.     printf("sono arrivato alla fine\n");
  62.  
  63.     return 1;
  64.   } else {
  65.     return 0;
  66.   }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement