Определить количество слов, которые начинаются и заканчиваются на одну и туже букву - C (СИ)

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

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

Дано рядок, що складається з російських слів, розділених пробілами (одним або кількома). Визначити кількість слів, що починаються і закінчуються однією і тією ж буквою.
Помогите пожалуйста, написать через принтф и сканф

Решение задачи: «Определить количество слов, которые начинаются и заканчиваются на одну и туже букву»

textual
Листинг программы
#include "stdafx.h"
#include <string.h>
 
int main()
{
 
    int count = 0; // инициализация счётчика
    char str[256] = "anapa sos"; // тестовая строка
    char *token; // временный буффер
 
    // разбиваем строку на подстроки функцией strtok
     token = strtok(str," ");
 
    if(token[0] == token[strlen(token) - 1]) { // если первый и последние символы одинаковые, прибавляем счётчик
        count++;
    }
 
    // пока не разобрали всю строку
    while (token != NULL) {
        // разбиваем строку на подстроки функцией strtok
        token = strtok(NULL, " ");
        if(token != NULL && token[0] == token[strlen(token) - 1]) { // если первый и последние символы одинаковые, прибавляем счётчик
            count++;
        }
    }
    // вывод результата на экран
    printf("Kolvo slov: %d", count);
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы для работы с C
  2. Объявляем функцию main(), в которой будет находиться основной код программы
  3. Инициализируем переменную count типа int со значением 0. Она будет использоваться для подсчета слов, удовлетворяющих условию
  4. Объявляем тестовую строку str типа char с длиной 256 символов и присваиваем ей значение anapa sos
  5. Объявляем переменную token типа char* (указатель на символ), которая будет использоваться как временный буфер
  6. Используем функцию strtok() для разбиения строки на подстроки, передавая в нее указатель на начало строки (str) и разделитель (пробел)
  7. Проверяем, совпадают ли первый и последний символы текущего слова (токена). Если да, увеличиваем значение переменной count на 1
  8. Используем цикл while для продолжения разбиения строки на подстроки до тех пор, пока не будет обработана вся строка
  9. Внутри цикла проверяем, является ли текущий токен не NULL и совпадают ли первый и последний символы текущего слова. Если да, увеличиваем значение переменной count на 1
  10. Выводим результат работы программы на экран с помощью функции printf()
  11. Возвращаем 0 из функции main(), чтобы указать, что программа успешно завершилась

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


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

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

10   голосов , оценка 4 из 5
Похожие ответы