Определить количество слов, которые начинаются и заканчиваются на одну и туже букву - 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;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с C
- Объявляем функцию main(), в которой будет находиться основной код программы
- Инициализируем переменную count типа int со значением 0. Она будет использоваться для подсчета слов, удовлетворяющих условию
- Объявляем тестовую строку str типа char с длиной 256 символов и присваиваем ей значение
anapa sos
- Объявляем переменную token типа char* (указатель на символ), которая будет использоваться как временный буфер
- Используем функцию strtok() для разбиения строки на подстроки, передавая в нее указатель на начало строки (str) и разделитель (пробел)
- Проверяем, совпадают ли первый и последний символы текущего слова (токена). Если да, увеличиваем значение переменной count на 1
- Используем цикл while для продолжения разбиения строки на подстроки до тех пор, пока не будет обработана вся строка
- Внутри цикла проверяем, является ли текущий токен не NULL и совпадают ли первый и последний символы текущего слова. Если да, увеличиваем значение переменной count на 1
- Выводим результат работы программы на экран с помощью функции printf()
- Возвращаем 0 из функции main(), чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д