Перевернуть каждое слово строки - 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, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д