Вывести все слова, в которых буква "а" стоит на втором месте - C (СИ)

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

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

Программа должна вывести все слова (Слова должны быть написаны латинскими буквами) в которых буква "а" стоит на втором месте и слово должно содержать только 4 буквы. Например если пользователь вводит слова: cat, dark, snow, salt, то программа выводит только: dark, salt (ввод слов пользователем не ограничен)

Решение задачи: «Вывести все слова, в которых буква "а" стоит на втором месте»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. #define N 4
  5.  
  6. int main() {
  7.     char word[N + 1] = { 0 };
  8.     int ch = 0, len = 0, pos = 0;
  9.  
  10.     while ((ch != '\n') && (ch != EOF)) {
  11.         ch = getchar();
  12.         if (isalpha(ch)) {
  13.             if (len < N) {
  14.                 word[len] = ch;
  15.             }
  16.             len++;
  17.             if ((ch == 'a') && (pos == 0)) {
  18.                 pos = len;
  19.             }
  20.         }
  21.         else {
  22.             if ((len == N) && (pos == 2)) {
  23.                 printf("%s, ", word);
  24.             }
  25.             len = pos = 0;
  26.         }
  27.     }
  28.  
  29.     return 0;
  30. }

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

В этом коде реализована простая программа на языке C, которая считывает с консоли строку из не более чем 4 символов, и выводит все слова, в которых буква а стоит на втором месте. Код выполняет следующие действия:

  1. #include — подключает к программе стандартную библиотеку, позволяющую работать с консолью.
  2. #include — подключает к программе библиотеку, содержащую функции для работы со строками.
  3. #define N 4 — определяет максимальное количество символов, которые могут быть в строке.
  4. char word[N + 1] = { 0 }; — создает массив для хранения считанных символов. Размер массива на единицу больше N, чтобы в конце строки можно было добавить нулевой символ.
  5. int ch = 0, len = 0, pos = 0; — инициализирует переменные, которые будут использоваться в цикле.
  6. while ((ch != '\n') && (ch != EOF)) { — начинает цикл, который будет выполняться до тех пор, пока не встретится символ новой строки или не будет достигнут конец файла.
  7. ch = getchar(); — считывает с консоли очередной символ.
  8. if (isalpha(ch)) { — проверяет, является ли считанный символ буквой.
  9. if (len < N) { — если длина строки меньше N, то добавляет символ в строку.
  10. word[len] = ch; — присваивает символ переменной word.
  11. len++; — увеличивает длину строки на единицу.
  12. if ((ch == 'a') && (pos == 0)) { — проверяет, является ли текущий символ буквой а и находится ли она на втором месте.
  13. pos = len; — если условие выполняется, то запоминает позицию а в строке.
  14. } — конец условия.
  15. else { — если встречен не буквенный символ.
  16. if ((len == N) && (pos == 2)) { — проверяет, является ли длина строки равной N и позиция а равной 2.
  17. printf(%s,, word); — если условие выполняется, то выводит строку на экран.
  18. len = pos = 0; — сбрасывает счетчики длины и позиции.
  19. } — конец условия.
  20. } — конец цикла.
  21. return 0; — завершает работу программы.

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


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

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

11   голосов , оценка 4.364 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы