Перевернуть каждое слово строки - C (СИ)

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

В записке слова зашифрованы — каждое из них записано наоборот. Расшифровать сообщение


textual

Код к задаче: «Перевернуть каждое слово строки - C (СИ)»

#include <stdio.h>
#include <ctype.h>
#define is_delim(c) (isspace((c)) || ispunct((c)))
 
char* words_rev(char* s){
    char* _f, *_l, c, *t = s;
    int n = 0;
    do {
        if(!is_delim(*s) && *s)
            ++n;
        else if(n > 0){
            for(_f = s - n, _l = s - 1; _f < _l; ++_f, --_l){
                c   = *_f;
                *_f = *_l;
                *_l = c;
            }           
            n = 0;
        }
    } while(*s++ != '\0');
    return t;
}
 
int main(void){
    char s[] = "LPA, AVAJ, LREP, PSIL, HTROF.";
    puts(s);
    puts(words_rev(s));
    getchar();
    return 0;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

14   голосов, оценка 4.071 из 5

Источник
Похожие ответы