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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
SaMaRiTyAnkA
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 10
#1

Поменять местами слова строки стоящие на четных и нечетных позициях - C++

24.10.2010, 18:16. Просмотров 2024. Ответов 5
Метки нет (Все метки)

Нужна помощь в лабораторной. Для корифеев задачка простая, но для меня...х))
Написать программу, которая меняет местами слова введенной с клавиатуры строки стоящие на четных и нечетных позициях.
Если можно с некоторыми комментариями...просто хотелось бы самой чуть-чуть разобраться.^^
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2010, 18:16     Поменять местами слова строки стоящие на четных и нечетных позициях
Посмотрите здесь:

В строке символов поменять местами символы на четных и нечетных позициях C++
В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных местах C++
В одномерном массиве А(10) поменять местами элементы стоящие на четных и нечетных местах C++
C++ Вывести на печать символы, стоящие на четных позициях
C++ Поменять местами содержимое четных и нечетных разрядов в младшем байте
Массивы: поменять местами соседние элементы, стоящие на четных местах, с элементами ,стоящими на нечетных местах C++
C++ В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах
Переделать массив таким образом, в первой половине располагались элементы, стоящие на четных позициях, а во второй половине - элементы в нечетных C++
В рендомно заполненном массиве поменять местами значения четных и нечетных индексов C++
C++ Поменять местами элементы, стоящие на четных местах, с элементами, стоящими на нечетных
C++ Массив: поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных
C++ Поменять попарно местами символы, расположенные на четных и нечетных позициях

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
24.10.2010, 20:22     Поменять местами слова строки стоящие на четных и нечетных позициях #2
SaMaRiTyAnkA,

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
36
37
38
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
#include <vector>
 
int main()
{
    std::string Str;
    std::cout<<"Enter string: ";
    std::getline(std::cin, Str);
    //Строка разделителей
    std::string Delim=",.$%^:? ";
    std::vector<std::string> StrVec;
    for(std::string::iterator It=Str.begin(); It!=Str.end(); ++It)
    {
     //Если символ строки равен символу в разделителях заменяем его на пробел
        if(Delim.find(*It)!=std::string::npos)
            *It=' ';
    }
    std::string TempStr; 
    //Строковый поток
    std::istringstream ist(Str);
    while(ist>>TempStr)
    StrVec.push_back(TempStr);
    for(size_t i=0; i<StrVec.size()-1; ++i)
    {
    if(i%2==0)
    {
        std::string Temp=StrVec[i];
        StrVec[i]=StrVec[i+1];
        StrVec[i+1]=Temp;
    }
     } 
     //Вывод на экран
     std::copy(StrVec.begin(), StrVec.end(), std::ostream_iterator<std::string>(std::cout, " "));
     return 0;
}
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.10.2010, 21:14     Поменять местами слова строки стоящие на четных и нечетных позициях #3
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
#include <string>
#include <iostream>
using namespace std;
 
int main() 
{ 
        char str[256]; // строка - массив символов(макс 256 символов)
        gets(str); // ввод с клавиатуры
        string buf[10]; // массив строк(макс 10). Хочешь сделай больше
        char * pch = strtok(str," "); // pch это указатель на символ(ы).
                                     // функция strtok() разбивает строку на слова
                                    //  сейчас pch указывает на первое слово строки str(то что до первого пробела)
        int index = 0; // индекс массива buf
        while(pch != NULL) // условие выполнения цикла - pch != NULL (пока pch  указывает на символ) 
                             // т.е. до конца строки
        { 
buf[index] = pch; // помещаем первое  в buf под индексом index
            pch = strtok(NULL," "); // перемещаем указатель на следующее слово
index++; // индекс плюс (для следующего слова)
        }
        
        for(int i = 0;i < 10;i = i+2){ // меняем местами каждое первое и второе слово
        string t = buf[i]; // заведя временную переменную t
        buf[i] = buf[i+1];
        buf[i+1] = t;   
        }
        for(int i = 0;i < 10;++i)
            cout << buf[i] << " "; // выводим на экран
 
system("pause");
}
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
24.10.2010, 22:05     Поменять местами слова строки стоящие на четных и нечетных позициях #4
Lavroff, как у Вас всё сложно! Я вот за простые решения - они может и не всегда лучшие, за то понятные
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
#include <iostream>
#include <string>
#include <sstream>
#include <cstdlib>
 
int main(){
    std::string buf;
    std::cout << "String: ";
    std::getline(std::cin, buf);
    if ( buf.empty() )
        return 1;
 
    std::istringstream ist(buf);
    std::string w1, w2;
 
    while ( ist >> w1 ){
        if ( ist >> w2 )
            std::cout << w2 << ' ';
        std::cout << w1 << ' ';
    }
 
    std::cout << std::endl;
    system("pause");
    return 0;
}
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
24.10.2010, 22:07     Поменять местами слова строки стоящие на четных и нечетных позициях #5
easybudda, И правда)
SaMaRiTyAnkA
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 10
25.10.2010, 03:42  [ТС]     Поменять местами слова строки стоящие на четных и нечетных позициях #6
Спасибо всем преогромное, успею и разобраться и сдать к сроку!
Yandex
Объявления
25.10.2010, 03:42     Поменять местами слова строки стоящие на четных и нечетных позициях
Ответ Создать тему
Опции темы

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