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

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

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

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

Решение задачи: «Перевернуть каждое слово строки»

textual
Листинг программы
#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;
}

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

  1. Подключение необходимых библиотек: iostream.h и cctype.h
  2. Объявление функции words_rev, которая переворачивает строку
  3. Объявление переменной s, которая содержит исходную строку
  4. Вывод исходной строки на экран
  5. Вызов функции words_rev с передачей в нее исходной строки
  6. Вывод результата работы функции words_rev на экран
  7. Ввод символа конца строки с помощью функции getchar
  8. Возврат значения 0, что означает успешный конец работы программы

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


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

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

14   голосов , оценка 4.071 из 5
Похожие ответы