Переписать фразу, изменив первые и последние буквы слов на заглавные - C (СИ)

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

Помогите пожалуйста составить программу. Которая переписывает фразу, меняя первые и последние буквы слов на заглавные.

Код к задаче: «Переписать фразу, изменив первые и последние буквы слов на заглавные - C (СИ)»

textual
#include <stdio.h>
#include <ctype.h>
 
int main() {
    char str[] = " You can also:click on; a link in! the move list, to go back? in time and. see what"
                  " the board looked    like just after that move was,,,!! made";
    char delim[] = " \t\n,.?!;:", *first, *last;
    int i, j, flag = 0, sym = 1;
    for(i = 0; str[i]; i++, sym = 1){
        for(j = 0; delim[j]; j++)
            if(str[i] == delim[j])
                sym = 0;
        if(sym){
            if(!flag){
                first = &str[i];
                flag = 1;
            }
        }
        if(!sym || str[i + 1] == '\0'){
            if(flag){
                last = &str[i - 1];
                if(str[i + 1] == '\0')
                    last = &str[i];
                flag = 0;
                *first = toupper(*first);
                *last = toupper(*last);
            }
        }
 
    }
    puts(str);
    return 0;
}

6   голосов, оценка 4.667 из 5


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