Chương trình đếm số ký tự trong file c++

Để có được một bản tóm tắt nhanh về một tệp như tổng số ký tự, từ và số lượng, Linux đã có một công cụ, wc. Ở đây chúng ta sẽ xem cách viết chương trình C để lấy thông tin tương tự

Chiến lược đếm ký tự, từ, dòng trong tệp

  1. Nhập tên tệp và mở tệp đó ở chế độ chỉ đọc. Không tiếp tục nếu tệp không mở được
  2. Duyệt từng ký tự tệp cho đến khi bạn nhận được ký tự EOF. Mỗi tệp kết thúc bằng ký tự EOF
    1. Tăng số ký tự
    2. Nếu ký tự không phải là ký tự khoảng trắng, hãy đặt cờ in_word thành 1
    3. Nếu ký tự là khoảng trắng và cờ in_word là 1, hãy tăng số lượng từ và đặt cờ in_word thành 0
      1. Nếu ký tự là ‘\n’ hoặc ‘\0’, hãy tăng số lượng dòng

Chương trình

/*test.c*/

#include 
#define MAX_LEN 1024

int main() {
  /*Read the file.*/

  char ch;
  int char_count = 0, word_count = 0, line_count = 0;
  int in_word = 0;
  char file_name[MAX_LEN];
  FILE *fp;

  printf("Enter a file name: ");
  scanf("%s", file_name);

  fp = fopen(file_name, "r");

  if(fp == NULL) {
    printf("Could not open the file %s\n", file_name);
    return 1;
  }

  while ((ch = fgetc(fp)) != EOF) {
    char_count++;

    if(ch == ' ' || ch == '\t' || ch == '\0' || ch == '\n') {
      if (in_word) {
        in_word = 0;
        word_count++;
      }

      if(ch = '\0' || ch == '\n') line_count++;

    } else {
      in_word = 1;
    }
  }

  printf("In the file %s:\n", file_name);
  printf("Number of characters: %d.\n", char_count);
  printf("Number of words: %d.\n", word_count);
  printf("Number of lines: %d.\n", line_count);

  return 0;
}

Đây là nội dung của file văn bản mẫu (test. txt)

Thông tin liên lạc điện tử sẽ không bao giờ
có thể thay thế cho khuôn mặt của
một người hết lòng động viên
người khác

Và đây là kết quả của chương trình

Chương trình đếm số ký tự trong file c++

Ở đây số ký tự bao gồm tất cả các ký tự kể cả khoảng trắng. Word là các ký tự không phải khoảng trắng liên tiếp. Và dòng kết thúc bằng ký tự ‘\0’ hoặc ‘\n’

Chương trình đếm số ký tự trong file c++

Tác giả. Srikanta

Tôi viết ở đây để giúp người đọc tìm hiểu và hiểu về lập trình máy tính, thuật toán, mạng, khái niệm hệ điều hành, v.v. một cách đơn giản. Tôi có 20 năm kinh nghiệm làm việc trong lĩnh vực mạng máy tính và tự động hóa công nghiệp. Xem tất cả các bài viết bằng Srikanta

Viết chương trình C đếm số ký tự, số từ và số dòng trong một tệp văn bản. Logic đếm ký tự, từ và dòng trong một tệp trong chương trình C. Cách đếm tổng ký tự, từ và dòng trong một tệp văn bản trong lập trình C

Một tệp là một vị trí lưu trữ vật lý trên đĩa và một thư mục là một đường dẫn logic được sử dụng để sắp xếp các tệp. Một tập tin tồn tại trong một thư mục

Ba thao tác mà chúng ta có thể thực hiện trên tệp như sau -

  • Mở tệp tin
  • Xử lý tệp (đọc, viết, sửa đổi)
  • Lưu và đóng tệp

Thí dụ

Hãy xem xét một ví dụ được đưa ra dưới đây -

  • Mở tệp ở chế độ ghi
  • Nhập câu lệnh vào tệp

Tệp đầu vào như sau -

Hi welcome to my world
This is C programming tutorial
From tutorials Point

Đầu ra như sau -

Number of characters = 72

Total words = 13

Total lines = 3

Chương trình

Sau đây là chương trình C để đếm các ký tự, dòng và số từ trong một tệp –

Bản thử trực tiếp

#include 
#include 
int main(){
   FILE * file;
   char path[100];
   char ch;
   int characters, words, lines;
   file=fopen("counting.txt","w");
   printf("enter the text.press cntrl Z:
");    while((ch = getchar())!=EOF){       putc(ch,file);    }    fclose(file);    printf("Enter source file path: ");    scanf("%s", path);    file = fopen(path, "r");    if (file == NULL){       printf("
Unable to open file.
");       exit(EXIT_FAILURE);    }    characters = words = lines = 0;    while ((ch = fgetc(file)) != EOF){       characters++;    if (ch == '
' || ch == '\0')       lines++;    if (ch == ' ' || ch == '\t' || ch == '
' || ch == '\0')       words++;    }    if (characters > 0){       words++;       lines++;    }    printf("
");    printf("Total characters = %d
", characters);    printf("Total words = %d
", words);    printf("Total lines = %d
", lines);    fclose(file);    return 0; }

đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

enter the text.press cntrl Z:
Hi welcome to Tutorials Point
C programming Articles
Best tutorial In the world
Try to have look on it
All The Best
^Z
Enter source file path: counting.txt

Total characters = 116
Total words = 23
Total lines = 6

Chương trình đếm số ký tự trong file c++


Chương trình đếm số ký tự trong file c++

Làm cách nào để đếm số ký tự trong tệp trong C?

Cách tiếp cận. Có thể đếm các ký tự một cách dễ dàng bằng cách đọc các ký tự trong tệp bằng phương thức getc() . Đối với mỗi ký tự được đọc từ tệp, hãy tăng bộ đếm lên một.

Làm cách nào để đếm từ trong tệp C?

Logic đếm ký tự, từ và dòng trong tệp .
Mở tệp nguồn ở chế độ r (đọc)
Khởi tạo ba biến characters = 0 , words = 0 và lines = 0 để lưu số đếm
Đọc một ký tự từ tệp và lưu nó vào một số biến nói ch
Tăng số lượng ký tự. .
Lặp lại bước 3-4 cho đến khi tệp kết thúc

Lệnh đếm số ký tự trong một tệp là gì?

Sử dụng lệnh wc để đếm số dòng, từ và byte trong tệp được chỉ định bởi tham số Tệp. Nếu một tệp không được chỉ định cho tham số Tệp, đầu vào tiêu chuẩn sẽ được sử dụng. Lệnh ghi kết quả vào đầu ra tiêu chuẩn và giữ tổng số cho tất cả các tệp được đặt tên.

Làm cách nào để đếm số từ trong một dòng trong C?

Chương trình C đếm số từ trong một chuỗi .
Lấy một chuỗi làm đầu vào
Sử dụng vòng lặp for để tìm khoảng trống giữa các từ trong chuỗi
Tăng liên tục một biến. Biến này đưa ra số lượng từ