Удалить все слова, длина которых меньше 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; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с строками и символами.
- Объявление основной переменной программы - строки
str
, которая содержит исходную строку для обработки. - Объявление вспомогательных переменных:
res
- для хранения результата,index
иres_index
- для контроля переполнения буфера при копировании. - Объявление переменной
sum
для подсчета количества чисел в исходной строке. - В цикле проходим по каждому символу исходной строки.
- Если текущий символ является пробелом или завершающим нулевым символом, то копируем в результирующую строку все символы, начиная с первого символа после предыдущего пробела и заканчивая текущим пробелом (или нулевым символом).
- Если текущий символ является числом, то добавляем его к сумме.
- После завершения цикла выводим на экран результирующую строку и сумму чисел.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д