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

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

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

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

textual
// После каждой буквы предпоследнего слова вставить символ '*'.
// Лишние символы (с 81-ого) отбросить. Использовать string.h и указатели.
#include <stdio.h>
#include <string.h>
 
#define DELIM " ,.?!\n\t"
 
char* next_to_last(char* str)
{
    char* end = &str[strlen(str)];
    while (*end == ' ') end--;
    while (*end != ' ') end--;
    while (*end == ' ') end--;
    while (*end != ' ') end--;
    end++;
    return end;
}
char* f(char* buf)
{
    buf[80] = 0;
    for(char* word = next_to_last(buf); !strchr(DELIM, *word); word++) {
        for (char* ptr = &word[strlen(word)]; ptr>word; ptr--) {
            *(ptr+1) = *ptr;
        }
        *++word = '*';
    }
    return buf;
}
int main(void)
{
    char buf[BUFSIZ];
    gets(buf);
    f(buf);
    puts(buf);
    return 0;
}

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


СОХРАНИТЬ ССЫЛКУ