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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
#1

Вывести на экран все слова с четными номерами. - C++

19.11.2009, 15:23. Просмотров 1135. Ответов 12
Метки нет (Все метки)

Дана строка текста, в которой слова разделены пробелами. Нужно вывести на экран все слова с четными номерами. Помогите пожалуйста решить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2009, 15:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести на экран все слова с четными номерами. (C++):

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

Распечатать введенную строку, удалив из неё слова с нечетными номерами и перевернув слова с четными номерами - C++
Задача 28. Распечатать строку, которая получается из введенной строки следующим образом: каждая цифра заменяется на заключенную в круглые...

Удалить из строки слова с нечетными номерами и перевернуть слова с четными номерами - C++
Распечатать введенную строку, удалив из нее слова с нечетными номерами и перевернув слова с четными номерами. Например, из строки 'холодный...

Вывести на экран строку символов только с четными номерами кодов ASCII - C++
После ввода с клавиатуры произвольного строки определить и вывести на экран строку символов только с четными номерами кодов ASCII,...

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

Распечатать введенную строку, удалив из неё слова с нечетными номерами и добавив перевернутое слово к слову с четными номерами. - C++
Распечатать введенную строку, удалив из неё слова с нечетными номерами и добавив перевернутое слово к слову с четными номерами. ...

12
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 15:38 #2
vikaplys, если stl не знаешь юзай функцию разбивки строки на лексемы strtok
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
19.11.2009, 16:39 #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <string.h>
 
int main()
{
    char str[] = "asd qwd q dasdqwd qwd sdfsdf";
    char* pstr = strtok(str, " ");
    int i = 1;
    while(*pstr)
    {
        if( (i^= 1) ) puts(pstr);
        pstr = strtok(NULL, " ");
    }
    return 0;
}
0
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
20.11.2009, 02:41  [ТС] #4
Скажите как исправить ошибку в этом коде, если написать с
C++
1
cin.getline(str, size*sizeof(char));
то не считает количество слов.

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
39
40
41
42
43
44
#include <conio.h>
#include <stdio.h>
#include <iterator>
#include <algorithm>
#pragma argsused
 
int main()
{
 const char size = 50;
 char str[size];
                size_t kol = 0;
                //cin.getline(str, size*sizeof(char));
                std::string s;
                std::vector<std::string>a;
 
                while (std::cin>>s && s!="0")
                {
                                a.push_back(s);
                                kol++;
                }
                std::cout<<"koli4estvo slov:"<<' '<<kol<<std::endl;
 
 
cout << "Slova c 4etnbIM Indexsom:" << endl;
char* pstr = strtok(str, " ");
    int i = 1;
    while(*pstr)
    {
        if( (i^= 1) ) puts(pstr);
        pstr = strtok(NULL, " ");
    }            system("pause");
                 return 0;
}
 
cout << "Slova c 4etnbIM Indexsom:" << endl;
char* pstr = strtok(str, " ");
    int i = 1;
    while(*pstr)
    {
        if( (i^= 1) ) puts(pstr);
        pstr = strtok(NULL, " ");
    }            system("pause");
                 return 0;
}
0
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
20.11.2009, 10:16  [ТС] #5
Я наверное функции Си и С++ перепутала, ну все равно не понимаю почему после присвоения
C++
1
cin.getline(str, size*sizeof(char))
дальше код не выполняется
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
20.11.2009, 16:08 #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
 
int main()
{
    char str[] = "asd qwd q dasdqwd qwd sdfsdf";
    char* pstr = strtok(str, " ");
    int i = 1;
    int count = 0;
    while(pstr != NULL) // я ошибся в предыдущем примере, должно быть так
    {
        if( (i^= 1) ) puts(pstr);
        ++count;
        pstr = strtok(NULL, " ");
    }
    printf("Words: %d\n", count);
    return 0;
}
0
Dilan
8 / 8 / 1
Регистрация: 26.09.2009
Сообщений: 65
20.11.2009, 17:30 #7
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
#include<stdio.h>
#include<iostream.h>
#include<string.h>
 
int main(int argc, char* argv[])
{
  cout<<"udalit slova gde neciotnoe kolicestvo simvolov...:";
  char sak[128];
  gets(sak);
 
  char *sep="|,<.>/?;;'|}]\{[`!@#$%^&*()-_=+ ";
  char *zodis=strtok(sak,sep);
  int n= strlen(zodis);
 
  if (n%2==0)
    cout <<zodis<<" "; 
 
  while (zodis!= NULL)
  {
    zodis = strtok (NULL, sep);
    if(zodis == NULL)break;
    n = strlen(zodis);
    if (n%2==0)
      cout <<zodis<<" ";
  }
 system("PAUSE");
 
return 0;
}
0
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
23.11.2009, 02:51  [ТС] #8
вся моя программа. Так и не разобралась с ошибкой, после считывания строки перестает считать количество слов и не выводит слова по возрастанию.

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
39
40
41
42
43
#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
#include <iostream.h>
#include <vector>
#include <string>
#include <conio.h>
#include <stdio.h>
#include <iterator>
#include <algorithm>
#pragma argsused
bool compare(const std::string &a, const std::string &b)
{
                return a.length()<b.length();
}
int main()
{
 
 char str[50];
                size_t kol = 0;
                std::string s;
                std::vector<std::string>a;
                gets(str);                                      // здесь проблема
                while (std::cin>>s && s!="0")
                {
                                a.push_back(s);
                                kol++;
                }
                std::cout<<"koli4estvo slov:"<<' '<<kol<<std::endl;
 
                std::sort(a.begin(),a.end(),compare);
                copy(a.begin(),a.end(),std::ostream_iterator<std::string>(std::cout,"\n"));
 
cout << "Slova c 4etnbIM Indexsom:" << endl;
char* pstr = strtok(str, " ");
    int i = 1;
    while(pstr != NULL)
    {
        if( (i^= 1) ) puts(pstr);
        pstr = strtok(NULL, " ");
    }            system("pause");
                 return 0;
}
Уже два дня сижу, все не получается. Выручайте.
0
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
23.11.2009, 14:15  [ТС] #9
Есть у кого нибудь, идеи как исправить ошибку?
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
23.11.2009, 14:26 #10
Так как всё-таки звучит задание? Причём здесь сортировка?
0
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
23.11.2009, 14:44 #11
vikaplys, участок кода 24-28 строках лишний
C++
1
2
3
4
5
while (std::cin>>s && s!="0")
   {
      a.push_back(s);
      kol++;
   }
0
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
23.11.2009, 14:53  [ТС] #12
требуется посчитать количество слов, вывести слова в порядке возрастания их длины и вывести слова с четными индексом. Просто первые 2 пункта выполнила, и теперь не могу сделать, чтобы программа выводил слова с четным индексом. Программа работает но выполняет или первые 2 пункта или если gets(str); убран в комментарии или последний.
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
23.11.2009, 16:30 #13
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
#include <vcl.h>      // создайте проект без поддержки vcl, этот заголовок вам не нужен 
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
 
bool compare(const std::string& a, const std::string& b) 
{ 
    return a.length() < b.length(); 
}
 
int main()
{
    std::string str;
    std::vector<std::string> vec;
 
    while (std::cin >> str && str!= "0") // "0" означает конец ввода
        vec.push_back(str);
 
    std::sort(vec.begin(), vec.end(), compare);
 
    std::cout << "Number of words: " << ' ' << vec.size() << std::endl;
    std::cout << "\nAfter sorting:\n";
    for(std::vector<std::string>::iterator iter = vec.begin(); iter!= vec.end(); ++iter)
        std::cout << '\t' << *iter << '\n';
 
    std::cout << "\nWords with an even index(after sorting):\n";
    for(size_t i = 1; i < vec.size(); i+= 2)
        std::cout << '\t' << vec[i] << '\n';
}
1
23.11.2009, 16:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2009, 16:30
Привет! Вот еще темы с ответами:

Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами - C++
Дан массив А размера N.Вывести вначале его элементы с четными номерами(в порядке возрастания номеров),а затем-элементы с нечетными...

Удалить из строки слова с четными номерами - C++
Помогите написать программу которая будет удалять из строки слова с четными номерами

Вывести вначале его элементы с четными номерами, а затем — элементы с нечетными номерами - C++
Всем добрый вечер!!!Если есть минутка, помогите сделать эти задания!буду очень благодарен!! 1. Дан массив A размера N. Вывести вначале...

Из заданного файла удалить все слова c двумя согласными и вывести на экран оставшиеся слова - C++
Привет всем, в с++ не очень шарю, а до строк в изучении еще не дошел , поэтому не пойму как делать Дан текст. Словом текста считается...


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

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

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