В заданной строке каждое слово заменить количеством букв в этом слове - C (СИ)
Формулировка задачи:
Задание : в заданной строке каждое слово заменить количеством букв в этом слове ) Помогите , в С не шарю , а учитель туман ...
Буду благодарен , за помощь !
Решение задачи: «В заданной строке каждое слово заменить количеством букв в этом слове»
textual
Листинг программы
- #include <stdlib.h>
- #include <stdio.h>
- int word_end(int c);
- int main() {
- FILE *in, *out;
- int count, i, s;
- in = fopen("in.txt", "r");
- out = fopen("out.txt", "w");
- count = i = 0;
- while (!feof(in)) {
- s = fgetch(in);
- if (word_end(s)) {
- if (count > 0) fprintf(out, "%d%c", count, s);
- count = 0;
- }
- }
- fclose(out);
- fclose(in);
- }
- int word_end(int c) {
- char *d = ",.!?:;-"; // разделители
- int i, len = 7; // сколько символов
- for (i = 0; i < len; i++) {
- if (c == d[i]) return 1;
- }
- return 0;
- }
Объяснение кода листинга программы
В данном коде заменяется каждое слово в заданной строке на количество букв в этом слове. Список действий:
- Подключение необходимых библиотек
- Определение функции word_end(int c), которая проверяет является ли символ концом слова
- Открытие файлов in.txt и out.txt
- Инициализация переменных count, i, s
- Чтение файла in.txt посимвольно
- Если текущий символ является концом слова (функция word_end(int c) возвращает 1), то записывается в файл out.txt количество букв в этом слове (переменная count) и добавляется текущий символ
- Если текущий символ не является концом слова, то увеличиваем счетчик count на единицу
- Закрытие файлов out.txt и in.txt В функции word_end(int c) происходит следующее:
- Инициализация переменной len равной 7 (длина строки разделителей)
- Перебор символов в строке разделителей
- Если текущий символ строки разделителей равен заданному символу, то функция возвращает 1, иначе продолжает перебор
- Если все символы строки разделителей были проверены, то функция возвращает 0 (символ не является концом слова)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д