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