Для того чтобы поменять местами первое и последнее слово в строке в C++, можно использовать следующий алгоритм:
- Считываем строку с помощью функции
std::getline
и сохраняем ее в переменнуюinputString
. - Определяем индекс первого пробела в строке с помощью функции
find_first_of
. Это можно сделать следующим образом:int firstSpaceIndex = inputString.find_first_of(' ');
. - Если первый пробел не был найден, то в строке только одно слово, поэтому можно завершить программу или распечатать сообщение об ошибке.
- Получаем подстроку, содержащую первое слово, используя метод
substr
:std::string firstWord = inputString.substr(0, firstSpaceIndex);
. - Ищем последний пробел в строке с помощью функции
find_last_of
: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;
.
Вот полный пример кода:
#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; }
После запуска программы, она будет ожидать ввода строки с клавиатуры. Затем она выведет полученную строку, в которой переставлены первое и последнее слово. Если введена строка с только одним словом, программа выведет сообщение об ошибке.