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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #define is_delim(c) (isspace((c)) || ispunct((c)))
  4.  
  5. char* words_rev(char* s){
  6.     char* _f, *_l, c, *t = s;
  7.     int n = 0;
  8.     do {
  9.         if(!is_delim(*s) && *s)
  10.             ++n;
  11.         else if(n > 0){
  12.             for(_f = s - n, _l = s - 1; _f < _l; ++_f, --_l){
  13.                 c   = *_f;
  14.                 *_f = *_l;
  15.                 *_l = c;
  16.             }          
  17.             n = 0;
  18.         }
  19.     } while(*s++ != '\0');
  20.     return t;
  21. }
  22.  
  23. int main(void){
  24.     char s[] = "LPA, AVAJ, LREP, PSIL, HTROF.";
  25.     puts(s);
  26.     puts(words_rev(s));
  27.     getchar();
  28.     return 0;
  29. }

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

  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

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

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

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