Как реализовать циклический сдвиг слова в c++?

Пользователь

от dan_farrell , в категории: C/C++ , 7 месяцев назад

Как реализовать циклический сдвиг слова в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от miguel_ritchie , 7 месяцев назад

@dan_farrell 

Для реализации циклического сдвига слова в C++ можно использовать следующий подход:

  1. Создать строковую переменную и инициализировать ее заданным словом.
  2. Создать целочисленную переменную, которая будет хранить количество сдвигов.
  3. Запросить у пользователя количество сдвигов.
  4. Реализовать циклический сдвиг слова посредством цикла. В каждой итерации цикла необходимо выполнить следующие шаги: Сохранить первый символ слова во временную переменную. Сдвинуть все символы в слове влево на одну позицию (для этого можно использовать функцию std::rotate() из библиотеки
  5. Вывести измененное слово после циклического сдвига.


Вот пример кода, демонстрирующий реализацию циклического сдвига слова:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include 
#include 

int main() {
    std::string word;
    std::cout << "Введите слово: ";
    std::cin >> word;

    int shifts;
    std::cout << "Введите количество сдвигов: ";
    std::cin >> shifts;

    shifts %= word.length(); // для предотвращения большого количества неэффективных сдвигов

    for (int i = 0; i < shifts; ++i) {
        char temp = word[0];
        std::rotate(word.begin(), word.begin() + 1, word.end());
        word[word.length() - 1] = temp;
    }

    std::cout << "Результат сдвига: " << word << std::endl;

    return 0;
}


После запуска программы пользователь будет приглашен ввести слово и количество сдвигов. Затем программа выполнит циклический сдвиг слова и выведет результат.