Заключить слова,начинающиеся с согласной буквы в двойные кавычки - C (СИ)
Формулировка задачи:
Файл сдержит слова.Заключить слова,начинающиеся с согласной буквы в двойные кавычки.
Решение задачи: «Заключить слова,начинающиеся с согласной буквы в двойные кавычки»
textual
Листинг программы
#ifdef _MSC_VER #define _CRT_SECURE_NO_WARNINGS #endif #include <ctype.h> #include <stdio.h> #include <stdlib.h> int is_consonant(int ch) { ch = tolower(ch); return ch == 'b' || ch == 'c' || ch == 'd' || ch == 'f' || ch == 'g' || ch == 'h' || ch == 'j' || ch == 'k' || ch == 'l' || ch == 'm' || ch == 'n' || ch == 'p' || ch == 'r' || ch == 's' || ch == 't' || ch == 'v' || ch == 'w' || ch == 'x' || ch == 'y' || ch == 'z'; } void while_not_end_word(FILE *file, const char* after) { int ch = EOF; while (!feof(file) && (ch = getc(file)) != EOF && isalpha(ch)) putchar(ch); printf(after); if (ch != EOF) putchar(ch); } void func(const char* filename, const char* quote) { int ch = EOF; int preview_char_is_not_letter = 1; FILE *file = fopen(filename, "r"); while (!feof(file)) { ch = getc(file); if (preview_char_is_not_letter && is_consonant(ch)) { printf(quote); putchar(ch); while_not_end_word(file, quote); preview_char_is_not_letter = 1; continue; } else if (ch != EOF) putchar(ch); preview_char_is_not_letter = !isalpha(ch); } fclose(file); } int main(void) { func("text.txt", "\""); putchar('\n'); #ifdef _MSC_VER system("pause"); #endif return EXIT_SUCCESS; }
Объяснение кода листинга программы
- Преобразует нижний регистр символа в верхний регистр.
- Проверяет, является ли символ согласной буквой.
- Проверяет, является ли текущий символ буквой.
- Если текущий символ является согласной буквой, выводит символ в кавычках.
- Если текущий символ не является согласной буквой, выводит символ.
- Проверяет, является ли предыдущий символ буквой.
- Если предыдущий символ является буквой, выводит символ в кавычках.
- Если предыдущий символ не является буквой, выводит символ.
- Выводит кавычки.
- Выводит символ новой строки.
- Выполняет системную команду
pause
. - Возвращает успешное завершение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д