Определить, сколько в тексте слов, состоящих из не более, чем четырех букв - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include<stdio.h>
#include<conio.h>
 
#define PATH "C:\\h1.txt"
void main()
  {
   int count=0,b=0;
   char c;
   FILE *f;
   clrscr();
   fopen(PATH,"r");
   do {
   c=getc(f);
   if(c!=' ') b++;
   if(c==' ')
     {
      if(b<=4) {count++; b=0;}
      else b=0;
     }
   }while(c!=EOF);
   printf("Koli4esto bukv <=4 %i",count);
   getch();
  }
Задание: Написать программу, которая считывает текст из файла и определяет, сколько в нем слов, состоящих из не более, чем четырех букв

Решение задачи: «Определить, сколько в тексте слов, состоящих из не более, чем четырех букв»

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
 
/* удаление требухи вокруг слова */
char *cutStr(char *s){
    char *h, *t;
    
    if ( !s || !*s )
        return NULL;
    for ( h = s; ispunct(*h); ++h )
        ;
    t = s + strlen(s);
    while ( ispunct(*(--t)) )
        ;
    *(t + 1) = '\0';
    
    return h;
}
 
#define FILE_NAME "simple.txt"
#define MAX_LEN 4
 
int main(void){
    char buf[BUFSIZ], *wrd;
    FILE *f;
    size_t cnt = 0;
    
    if ( ( f = fopen(FILE_NAME, "r") ) == NULL ){
        fprintf(stderr, "Can't open file <%s> for input!\n", FILE_NAME);
        exit(1);
    }
    
    while ( fscanf(f, "%s", buf) == 1 ){
        wrd = cutStr(buf);
        if ( wrd && *wrd && strlen(wrd) <= MAX_LEN )
            ++cnt;
    }
    if ( ferror(f) ){
        fprintf(stderr, "Can't read from file!\n");
        exit(1);
    }
    fclose(f);
    printf("Found %d words length of %d characters or less.\n", cnt, MAX_LEN);
    
    exit(0);
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы для работы с файлами и строками.
  2. Определяется функция cutStr, которая удаляет все знаки препинания из строки.
  3. Определяются две константы: FILE_NAME - имя файла, который необходимо открыть, и MAX_LEN - максимальная длина слова, которое необходимо найти.
  4. В функции main открывается файл с помощью fopen или выводится сообщение об ошибке, если файл открыть не удалось.
  5. В цикле while считываются строки из файла с помощью fscanf.
  6. Каждая прочитанная строка передается в функцию cutStr, которая удаляет все знаки препинания из строки.
  7. Если строка прошла проверку на максимальную длину, то увеличивается счетчик слов.
  8. После окончания чтения файла проверяется, были ли ошибки при чтении файла.
  9. Файл закрывается с помощью fclose.
  10. Выводится количество найденных слов и длина этих слов.
  11. Программа завершается с помощью exit.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы