Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 7
1

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

26.04.2014, 15:33. Показов 2670. Ответов 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;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2014, 15:33
Ответы с готовыми решениями:

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

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

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

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

5
67 / 67 / 37
Регистрация: 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++;
}
}
0
Модератор
Эксперт С++
11482 / 9400 / 5649
Регистрация: 18.12.2011
Сообщений: 25,109
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;
    }
0
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++;
}
}
0
67 / 67 / 37
Регистрация: 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++;
 }
}
Должно работать
0
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 7
26.04.2014, 16:25  [ТС] 6
Все равно считывает и пробелы.
http://rghost.ru/54645930
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2014, 16:25

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru