Форум программистов, компьютерный форум CyberForum.ru

Поменять два соседних слова местами - C++

Восстановить пароль Регистрация
 
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
22.06.2013, 14:42     Поменять два соседних слова местами #1
В чем ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
 
int main ()
{
   setlocale (0, "");
    string s,s2,s3,s4;
    int a, b;
    ifstream f("1.txt");
    getline (f,s);
    cout<<s<<endl;;
    a=0;
 
    for (int i=0; i<s.size(); )
        {
            b=s.find(" ", a+1);
            s2=s.substr(a,b-a);
            a=b+1;
            if (s.find(" ", a+1)) b=s.find(" ", a+1);
            else b=s.size();
            s3=s.substr(a,b-a);
            if (i!=0) s4.append(" ");
            s4.append(s3);
            s4.append(" ");
            s4.append(s2);
            s3.erase();
            s2.erase();
            i=i+b+1;
            a=b+1;
        }
    cout<<s4;
    return 0;
}
Программа работает только если в файле после последнего слова стоит пробел. Что изменить, чтобы она работала и в случае, если в конце нет пробела?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2013, 14:42     Поменять два соседних слова местами
Посмотрите здесь:

C++ Написать программу,которая считывает текст из файла и выводит его на экран,меняя местами каждые два соседних слова.
C++ Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова C++
В фразе поменять местами два слова C++
C++ поменять местами каждые два соседних слова.
C++ Строки. В тексте поменять местами каждые два соседних слова
Поменять в строке местами два слова (Паскаль -> C++) C++
C++ Строковые потоки. Переставить местами два соседних слова

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru