Циклическая перестановка букв в словах текста - C (СИ)

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

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

надо составить программу циклической перестановки букв в словах текста так, что i-я буква слова становится i+1-ой, а последняя - первой,заранее спасибо
вот пример- было привет,стало тприве

Решение задачи: «Циклическая перестановка букв в словах текста»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdio.h>
  3.  
  4. int main() {
  5.     char str[] = " You can also:click on; a link in! the move list, to go back? in time and. see what"
  6.                   " the board looked    like just after that move was,,,!! made";
  7.     char delim[] = " \t\n,.?!;:", *first, *last, tmp;
  8.     int i, j, flag = 0, sym = 1;
  9.     for(i = 0; str[i]; i++, sym = 1){
  10.         for(j = 0; delim[j]; j++)
  11.             if(str[i] == delim[j])
  12.                 sym = 0;
  13.         if(sym){
  14.             if(!flag){
  15.                 first = &str[i];
  16.                 flag = 1;
  17.             }
  18.         }
  19.         if(!sym || str[i + 1] == '\0'){
  20.             if(flag){
  21.                 last = &str[i - 1];
  22.                 if(str[i + 1] == '\0')
  23.                     last = &str[i];
  24.                 flag = 0;
  25.                 tmp = *last;
  26.                 while(last > first){
  27.                     *last = *(last - 1);
  28.                     last--;
  29.                 }
  30.                 *first = tmp;
  31.             }
  32.         }
  33.     }
  34.     puts(str);
  35.     return 0;
  36. }

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

  1. В данном коде реализуется функция, которая выполняет циклическую перестановку букв в словах текста.
  2. В первую очередь, вводится строка, в которой необходимо выполнить перестановку.
  3. Затем определяется разделитель, который разделяет слова в исходной строке.
  4. Далее, с помощью двух вложенных циклов, происходит сравнение каждого символа исходной строки с каждым символом разделителя.
  5. Если символ является разделителем, то переменной sym присваивается значение 0, иначе 1.
  6. Если значение переменной sym равно 1 и переменная flag равна 0, то переменная first указывает на текущий символ.
  7. Если значение переменной sym равно 0 или следующий символ является концом строки, то переменная last указывает на предыдущий символ.
  8. Если переменная flag равна 1, то происходит перестановка символов между переменной first и last.
  9. После завершения вложенных циклов, выводится измененная строка.
  10. В конце функции возвращается 0, что означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5

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

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

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