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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SimpleSystem
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 7
#1

Строки. В тексте поменять местами каждые два соседних слова - C++

26.04.2014, 15:33. Просмотров 1218. Ответов 5
Метки нет (Все метки)

Есть задание: нужно считать текст и вывести его на экран, поменяв местами каждые два соседних слова.
Есть готовый код:
 Комментарий модератора 
Тексты надо вставлять в тело сообщения


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

Библиотеки:
C++
1
2
3
4
5
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string>
Помогите пожалуйста.

Добавлено через 17 минут
вот код
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
int main()
{
    string s1;
    string s[30];
    ifstream ifs("text.txt");
    int count = 0;
    while (getline(ifs, s1, ' '))
    {
        s[count] = s1;
        count++;
    }
    ifs.close();
    string temp;
    for (int i = 0; i<30; i += 2)
    {
        temp = s[i];
        s[i] = s[i + 1];
        s[i + 1] = temp;
    }
    for (int i = 0; i<30; i++)
    {
        cout << s[i] << " ";
    }
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2014, 15:33     Строки. В тексте поменять местами каждые два соседних слова
Посмотрите здесь:

Поменять каждые два соседних слова в строке местами - C++
прога должна менять каждые 2 сосенних слова местами) пол дня сижу не могу решить вот последняя моя мысль но всеравно не работает ...

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

Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова - C++
Вот исходный код: #include &lt;fstream&gt; #include &lt;iostream&gt; //#include&lt;clocale&gt; using namespace std; int main() { ...

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

Строки. Считывание текста и его вывод, в котором каждые 2 соседних слова меняются местами - C++
Здравствуйте! Подскажите пожалуйста решение данной задачи! В строках вообще ничего не понимаю. Надеюсь на вашу помощь :3 Написать...

Поменять местами каждые соседние слова - C++
Написать программу, которая считывает текст с клавиатуры и выводит его на экран, меняет местами каждые соседние слова (Borland MS-DOS)

Строковые потоки. Переставить местами два соседних слова - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;fstream&gt; #include&lt;string&gt; using namespace std; int main()...

Введенный текст вывести на экран, меняя местами каждые два слова - C++
Напишите программу, которая выведет на экран введённый текст выведет на экран меняя местами каждые два соседних слова. я не знаю...

Поменять местами слова в тексте - C++
В заданном тексте нужно поменять слова местами (можно полегче?)

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RQdan
65 / 65 / 17
Регистрация: 26.10.2013
Сообщений: 198
26.04.2014, 15:52     Строки. В тексте поменять местами каждые два соседних слова #2
Цитата Сообщение от SimpleSystem Посмотреть сообщение
while (getline(ifs, s1, ' '))
{
s[count] = s1;
count++;
}
Сделайте проверку в цикле считывания на наличия пробела в итоговой строке.
C++
1
2
3
4
5
6
7
8
while (getline(ifs, s1, ' '))
{
if (s1<>' ')
{
s[count] = s1;
count++;
}
}
zss
Модератор
Эксперт С++
6280 / 5883 / 1904
Регистрация: 18.12.2011
Сообщений: 15,085
Завершенные тесты: 1
26.04.2014, 15:56     Строки. В тексте поменять местами каждые два соседних слова #3
C++
1
2
3
4
5
6
7
8
9
10
11
while (ifs>>s[count++] && count<30)
                ;
    ifs.close();
    string temp;
     count--;
    for (int i = 0; i<count; i += 2)
    {
        temp = s[i];
        s[i] = s[i + 1];
        s[i + 1] = temp;
    }
SimpleSystem
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 7
26.04.2014, 16:06  [ТС]     Строки. В тексте поменять местами каждые два соседних слова #4
Не меняет местами, просто выводит текст.
А когда делаю проверку выдает ошибку
error C2676: binary '==' : 'std::string' does not define this operator or a conversion to a type acceptable to the predefined operator
C++
1
2
3
4
5
6
7
8
while (getline(ifs, s1, ' '))
{
if (s1==' ')
{
s[count] = s1;
count++;
}
}
RQdan
65 / 65 / 17
Регистрация: 26.10.2013
Сообщений: 198
26.04.2014, 16:17     Строки. В тексте поменять местами каждые два соседних слова #5
Цитата Сообщение от SimpleSystem Посмотреть сообщение
А когда делаю проверку выдает ошибку
error C2676: binary '==' : 'std::string' does not define this operator or a conversion to a type acceptable to the predefined operator
Да, что-то я забыл о string'е.
C++
1
2
3
4
5
6
7
8
while (getline(ifs, s1, ' '))
{
if (s1[0]!=' ')
 {
 s[count] = s1;
 count++;
 }
}
Должно работать
SimpleSystem
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 7
26.04.2014, 16:25  [ТС]     Строки. В тексте поменять местами каждые два соседних слова #6
Все равно считывает и пробелы.
http://rghost.ru/54645930
Yandex
Объявления
26.04.2014, 16:25     Строки. В тексте поменять местами каждые два соседних слова
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru