Циклическая перестановка букв в словах текста - 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;
}

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

  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
Похожие ответы