Вывести все слова, в которых буква "а" стоит на втором месте - C (СИ)
Формулировка задачи:
Программа должна вывести все слова (Слова должны быть написаны латинскими буквами) в которых буква "а" стоит на втором месте и слово должно содержать только 4 буквы.
Например если пользователь вводит слова: cat, dark, snow, salt, то программа выводит только: dark, salt
(ввод слов пользователем не ограничен)
Решение задачи: «Вывести все слова, в которых буква "а" стоит на втором месте»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> #define N 4 int main() { char word[N + 1] = { 0 }; int ch = 0, len = 0, pos = 0; while ((ch != '\n') && (ch != EOF)) { ch = getchar(); if (isalpha(ch)) { if (len < N) { word[len] = ch; } len++; if ((ch == 'a') && (pos == 0)) { pos = len; } } else { if ((len == N) && (pos == 2)) { printf("%s, ", word); } len = pos = 0; } } return 0; }
Объяснение кода листинга программы
В этом коде реализована простая программа на языке C, которая считывает с консоли строку из не более чем 4 символов, и выводит все слова, в которых буква а
стоит на втором месте.
Код выполняет следующие действия:
- #include
— подключает к программе стандартную библиотеку, позволяющую работать с консолью. - #include
— подключает к программе библиотеку, содержащую функции для работы со строками. - #define N 4 — определяет максимальное количество символов, которые могут быть в строке.
- char word[N + 1] = { 0 }; — создает массив для хранения считанных символов. Размер массива на единицу больше N, чтобы в конце строки можно было добавить нулевой символ.
- int ch = 0, len = 0, pos = 0; — инициализирует переменные, которые будут использоваться в цикле.
- while ((ch != '\n') && (ch != EOF)) { — начинает цикл, который будет выполняться до тех пор, пока не встретится символ новой строки или не будет достигнут конец файла.
- ch = getchar(); — считывает с консоли очередной символ.
- if (isalpha(ch)) { — проверяет, является ли считанный символ буквой.
- if (len < N) { — если длина строки меньше N, то добавляет символ в строку.
- word[len] = ch; — присваивает символ переменной word.
- len++; — увеличивает длину строки на единицу.
- if ((ch == 'a') && (pos == 0)) { — проверяет, является ли текущий символ буквой
а
и находится ли она на втором месте. - pos = len; — если условие выполняется, то запоминает позицию
а
в строке. - } — конец условия.
- else { — если встречен не буквенный символ.
- if ((len == N) && (pos == 2)) { — проверяет, является ли длина строки равной N и позиция
а
равной 2. - printf(
%s,
, word); — если условие выполняется, то выводит строку на экран. - len = pos = 0; — сбрасывает счетчики длины и позиции.
- } — конец условия.
- } — конец цикла.
- return 0; — завершает работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д