Циклическая перестановка букв в словах текста - C (СИ)
Формулировка задачи:
надо составить программу циклической перестановки букв в словах текста так, что i-я буква слова становится i+1-ой, а последняя - первой,заранее спасибо
вот пример- было привет,стало тприве
Решение задачи: «Циклическая перестановка букв в словах текста»
textual
Листинг программы
#include <stdio.h> #include <stdio.h> int main() { char str[] = " You can also:click on; a link in! the move list, to go back? in time and. see what" " the board looked like just after that move was,,,!! made"; char delim[] = " \t\n,.?!;:", *first, *last, tmp; int i, j, flag = 0, sym = 1; for(i = 0; str[i]; i++, sym = 1){ for(j = 0; delim[j]; j++) if(str[i] == delim[j]) sym = 0; if(sym){ if(!flag){ first = &str[i]; flag = 1; } } if(!sym || str[i + 1] == '\0'){ if(flag){ last = &str[i - 1]; if(str[i + 1] == '\0') last = &str[i]; flag = 0; tmp = *last; while(last > first){ *last = *(last - 1); last--; } *first = tmp; } } } puts(str); return 0; }
Объяснение кода листинга программы
- В данном коде реализуется функция, которая выполняет циклическую перестановку букв в словах текста.
- В первую очередь, вводится строка, в которой необходимо выполнить перестановку.
- Затем определяется разделитель, который разделяет слова в исходной строке.
- Далее, с помощью двух вложенных циклов, происходит сравнение каждого символа исходной строки с каждым символом разделителя.
- Если символ является разделителем, то переменной
sym
присваивается значение 0, иначе 1. - Если значение переменной
sym
равно 1 и переменнаяflag
равна 0, то переменнаяfirst
указывает на текущий символ. - Если значение переменной
sym
равно 0 или следующий символ является концом строки, то переменнаяlast
указывает на предыдущий символ. - Если переменная
flag
равна 1, то происходит перестановка символов между переменнойfirst
иlast
. - После завершения вложенных циклов, выводится измененная строка.
- В конце функции возвращается 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д