Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 10
1

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

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

Author24 — интернет-сервис помощи студентам
Нужна помощь в лабораторной. Для корифеев задачка простая, но для меня...х))
Написать программу, которая меняет местами слова введенной с клавиатуры строки стоящие на четных и нечетных позициях.
Если можно с некоторыми комментариями...просто хотелось бы самой чуть-чуть разобраться.^^
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2010, 18:16
Ответы с готовыми решениями:

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

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

В одномерном массиве А(10) поменять местами элементы стоящие на четных и нечетных местах
В одномерном массиве А(10) поменять местами элементы стоящие на четных и нечетных местах,среди...

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

5
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
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
246 / 178 / 47
Регистрация: 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
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
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
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.10.2010, 22:07 5
easybudda, И правда)
0
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 10
25.10.2010, 03:42  [ТС] 6
Спасибо всем преогромное, успею и разобраться и сдать к сроку!
0
25.10.2010, 03:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2010, 03:42
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru