Как поменять местами 1-ое и последнее слово в строке?

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

1. Считываем строку с помощью функции std::getline и сохраняем ее в переменную inputString.
2. Определяем индекс первого пробела в строке с помощью функции find_first_of. Это можно сделать следующим образом: int firstSpaceIndex = inputString.find_first_of(' ');.
3. Если первый пробел не был найден, то в строке только одно слово, поэтому можно завершить программу или распечатать сообщение об ошибке.
4. Получаем подстроку, содержащую первое слово, используя метод substr: std::string firstWord = inputString.substr(0, firstSpaceIndex);.
5. Ищем последний пробел в строке с помощью функции find_last_of: int lastSpaceIndex = inputString.find_last_of(' ');.
6. Получаем подстроку, содержащую последнее слово: std::string lastWord = inputString.substr(lastSpaceIndex + 1);.
7. Заменяем первое слово в исходной строке последним словом: inputString.replace(0, firstSpaceIndex, lastWord);.
8. Заменяем последнее слово в исходной строке первым словом: inputString.replace(lastSpaceIndex + 1, inputString.length() - lastSpaceIndex, firstWord);.
9. Выводим измененную строку: std::cout << inputString << std::endl;.

Вот полный пример кода:

#include <iostream>
#include <string>

int main() {
    std::string inputString;
    std::getline(std::cin, inputString);

    int firstSpaceIndex = inputString.find_first_of(' ');
    if (firstSpaceIndex == std::string::npos) {
        std::cout << "Ошибка: в строке только одно слово!" << std::endl;
        return 0;
    }

    std::string firstWord = inputString.substr(0, firstSpaceIndex);
    int lastSpaceIndex = inputString.find_last_of(' ');
    std::string lastWord = inputString.substr(lastSpaceIndex + 1);

    inputString.replace(0, firstSpaceIndex, lastWord);
    inputString.replace(lastSpaceIndex + 1, inputString.length() - lastSpaceIndex, firstWord);

    std::cout << inputString << std::endl;

    return 0;
}

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