Top.Mail.Ru
Ответы

Последнее слово строки поставить после первого с++

Пишет несовместимы типы операндов ( " 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");
}