Удалить все слова, длина которых меньше 3 символов - C (СИ)

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

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

Дан текст. Удалить все слова, длина которых меньше 3 символов. Все слова, длина которых больше 3 символов, объединить в одно. В конце строки вывести сумму чисел, встречающихся в строке.

Решение задачи: «Удалить все слова, длина которых меньше 3 символов»

textual
Листинг программы
#include <stdio.h> 
#include <string.h>
#include <ctype.h>
 
int main(void) 
{ 
    char res[256], str[256] = "Eniki  2i beniki  12 6 a5 eli bb vareniki";
    size_t i, index = 0, res_index = 0;
    int sum = 0;
    for (i=0; i <= strlen(str); i++)
    {
        if (str[i] == ' ' || str[i] == '\0')
        {
            if (i - index >= 3)
            {
                strncpy(&res[res_index], &str[index], i - index + 1);
                res_index = strlen(res) - 1;
            }
            index = i + 1;
        }
        if (isdigit(str[i]))
            sum += str[i] - '0';
    }
    printf("%s %d\n", res, sum);
    return 0;        
}

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

  1. Подключение необходимых библиотек для работы с строками и символами.
  2. Объявление основной переменной программы - строки str, которая содержит исходную строку для обработки.
  3. Объявление вспомогательных переменных: res - для хранения результата, index и res_index - для контроля переполнения буфера при копировании.
  4. Объявление переменной sum для подсчета количества чисел в исходной строке.
  5. В цикле проходим по каждому символу исходной строки.
  6. Если текущий символ является пробелом или завершающим нулевым символом, то копируем в результирующую строку все символы, начиная с первого символа после предыдущего пробела и заканчивая текущим пробелом (или нулевым символом).
  7. Если текущий символ является числом, то добавляем его к сумме.
  8. После завершения цикла выводим на экран результирующую строку и сумму чисел.
  9. Возвращаем 0, чтобы указать, что программа успешно завершилась.

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


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

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

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