Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

Поменять местами элементы, стоящие на четных местах, с элементами, стоящими на нечетных - C++
Помогите составить программу. Условие: В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с...

Массив: поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных - C++
В заданном одномерном массиве, поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных. ...

Поменять местами соседние элементы массива, стоящие на четных местах, с элементами, стоящими на нечетных - C++
Задача на массивы: В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на...

5
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 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;
}
2
TheMachinist
244 / 176 / 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");
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
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;
}
2
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
24.10.2010, 22:07 #5
easybudda, И правда)
0
SaMaRiTyAnkA
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 10
25.10.2010, 03:42  [ТС] #6
Спасибо всем преогромное, успею и разобраться и сдать к сроку!
0
25.10.2010, 03:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2010, 03:42
Привет! Вот еще темы с ответами:

Массивы: поменять местами соседние элементы, стоящие на четных местах, с элементами ,стоящими на нечетных местах - C++
В заданном одномерном массиве поменять местами соседние элементы ,стоящие на четных местах ,с элементами ,стоящими на нечетных...

В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных местах - C++
1)В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных...

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

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


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

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

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