Последнее слово строки поставить после первого с++
Пишет несовместимы типы операндов ( " char* ", "char" ) - while (str1 != ' ') {
и требуются выражения символов >
help
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Russian");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char str1[] = ""; int i, k, d;
printf("Введите строку: ");
gets_s(str1);
k = 0; i = 0;
while (str1 != ' ') {
i++;
}
k = i; //Окончание первого слова
for (i = 0; i < strlen(str1); i++) { >= = ' ') d = i; } //Нахождение последнего пробела (начало последнего слова)
printf("Ответ: ");
for (i = 0; i < k; i++) { > ); } //Вывод первого слова
for (i = d; i < strlen(str1); i++) {
> ); //Вывод последнего слова, то есть вставка его после первого
}
for (i = k; i < d; i++) {
> ); //Вывод остальных слов (символов)
}
getch();
#include <iostream>
#include <string>
#include <sstream>
#include <list>
using namespace std;
int main() {
system("chcp 1251 > nul");
cout << "Введите строку: ";
string line;
getline(cin, line);
istringstream iss(line);
string word;
list<string> words;
while (iss >> word) words.push_back(word);
auto last = words.back();
words.pop_back();
auto iterator = words.begin();
words.insert(++iterator, last);
line.clear();
for (const auto& item : words) line += item + ' ';
line.pop_back();
cout << "Новая строка: " << line << '\n';
system("pause > nul");
}