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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
19.11.2009, 15:23     Вывести на экран все слова с четными номерами. #1
Дана строка текста, в которой слова разделены пробелами. Нужно вывести на экран все слова с четными номерами. Помогите пожалуйста решить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2009, 15:23     Вывести на экран все слова с четными номерами.
Посмотрите здесь:

C++ Распечатать введенную строку, удалив из неё слова с нечетными номерами и перевернув слова с четными номерами
Распечатать введенную строку, удалив из неё слова с нечетными номерами и добавив перевернутое слово к слову с четными номерами. C++
Вывести вначале его элементы с четными номерами, а затем — элементы с нечетными номерами C++
C++ Удалить из строки слова с четными номерами
C++ Вывести элементы матрицы, расположенные в строках с четными номерами
Выведите все элементы массива с четными номерами C++
C++ Вывести вначале элементы с четными номерами, а затем с нечетными (все в порядке возрастания)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 15:38     Вывести на экран все слова с четными номерами. #2
vikaplys, если stl не знаешь юзай функцию разбивки строки на лексемы strtok
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,891
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;
}
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;
}
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
20.11.2009, 10:16  [ТС]     Вывести на экран все слова с четными номерами. #5
Я наверное функции Си и С++ перепутала, ну все равно не понимаю почему после присвоения
C++
1
cin.getline(str, size*sizeof(char))
дальше код не выполняется
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,891
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;
}
Dilan
 Аватар для 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;
}
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;
}
Уже два дня сижу, все не получается. Выручайте.
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
23.11.2009, 14:15  [ТС]     Вывести на экран все слова с четными номерами. #9
Есть у кого нибудь, идеи как исправить ошибку?
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,891
23.11.2009, 14:26     Вывести на экран все слова с четными номерами. #10
Так как всё-таки звучит задание? Причём здесь сортировка?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
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++;
   }
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
23.11.2009, 14:53  [ТС]     Вывести на экран все слова с четными номерами. #12
требуется посчитать количество слов, вывести слова в порядке возрастания их длины и вывести слова с четными индексом. Просто первые 2 пункта выполнила, и теперь не могу сделать, чтобы программа выводил слова с четным индексом. Программа работает но выполняет или первые 2 пункта или если gets(str); убран в комментарии или последний.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2009, 16:30     Вывести на экран все слова с четными номерами.
Еще ссылки по теме:

Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами C++
C++ Продублировать в массиве все положительные элементы с четными номерами
C++ Вывести на экран строку символов только с четными номерами кодов ASCII
C++ Из заданного файла удалить все слова c двумя согласными и вывести на экран оставшиеся слова
Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами C++

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

Или воспользуйтесь поиском по форуму:
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,891
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';
}
Yandex
Объявления
23.11.2009, 16:30     Вывести на экран все слова с четными номерами.
Ответ Создать тему
Опции темы

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