После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить - C (СИ)

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

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

После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить. Использовать string.h и указатели. Если честно, я без понятия, как это сделать, поэтому показывать мне нечего, ребят (разве что прототип функции).

Решение задачи: «После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить»

textual
Листинг программы
  1. // После каждой буквы предпоследнего слова вставить символ '*'.
  2. // Лишние символы (с 81-ого) отбросить. Использовать string.h и указатели.
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. #define DELIM " ,.?!\n\t"
  7.  
  8. char* next_to_last(char* str)
  9. {
  10.     char* end = &str[strlen(str)];
  11.     while (*end == ' ') end--;
  12.     while (*end != ' ') end--;
  13.     while (*end == ' ') end--;
  14.     while (*end != ' ') end--;
  15.     end++;
  16.     return end;
  17. }
  18. char* f(char* buf)
  19. {
  20.     buf[80] = 0;
  21.     for(char* word = next_to_last(buf); !strchr(DELIM, *word); word++) {
  22.         for (char* ptr = &word[strlen(word)]; ptr>word; ptr--) {
  23.             *(ptr+1) = *ptr;
  24.         }
  25.         *++word = '*';
  26.     }
  27.     return buf;
  28. }
  29. int main(void)
  30. {
  31.     char buf[BUFSIZ];
  32.     gets(buf);
  33.     f(buf);
  34.     puts(buf);
  35.     return 0;
  36. }

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

  1. В начале кода подключаются необходимые библиотеки: stdio.h для работы с вводом/выводом, string.h для работы со строками.
  2. Определяется строка-разделитель DELIM, которая будет использоваться для разделения исходной строки на слова.
  3. Функция next_to_last() находит позицию предпоследнего слова в строке.
  4. Функция f() принимает на вход указатель на последнее слово в строке (buf) и добавляет символ '*' после каждой буквы предпоследнего слова.
  5. В функции main() вводится строка, затем вызывается функция f() для обработки этой строки.
  6. Результат выводится на экран с помощью функции puts().
  7. В конце программы возвращается 0, что означает успешное выполнение.

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


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

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

8   голосов , оценка 4.25 из 5

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

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

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