Перевернуть каждое слово строки - 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; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream.h и cctype.h
- Объявление функции words_rev, которая переворачивает строку
- Объявление переменной s, которая содержит исходную строку
- Вывод исходной строки на экран
- Вызов функции words_rev с передачей в нее исходной строки
- Вывод результата работы функции words_rev на экран
- Ввод символа конца строки с помощью функции getchar
- Возврат значения 0, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д