Определить, сколько в тексте слов, состоящих из не более, чем четырех букв - 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); }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с файлами и строками.
- Определяется функция
cutStr
, которая удаляет все знаки препинания из строки. - Определяются две константы:
FILE_NAME
- имя файла, который необходимо открыть, иMAX_LEN
- максимальная длина слова, которое необходимо найти. - В функции
main
открывается файл с помощьюfopen
или выводится сообщение об ошибке, если файл открыть не удалось. - В цикле
while
считываются строки из файла с помощьюfscanf
. - Каждая прочитанная строка передается в функцию
cutStr
, которая удаляет все знаки препинания из строки. - Если строка прошла проверку на максимальную длину, то увеличивается счетчик слов.
- После окончания чтения файла проверяется, были ли ошибки при чтении файла.
- Файл закрывается с помощью
fclose
. - Выводится количество найденных слов и длина этих слов.
- Программа завершается с помощью
exit
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д