-1

Пользователь вводит с клавиатуры строку – предложение с пробелами и знаками пунктуации длиной до 100 символов. Вывести на экран каждое третье слово.

#include <iostream>
#include <conio.h>

using namespace std;

char s[100];

int main()
{
    char *ps = &s[0];

    cout<<"\n Input the string: ";
    gets(s);

     for (int i=0; i<100; i++, *ps++) 
    {
        if (!(i % 3)) {
                cout<<"\n";  }
        cout<< *ps ;
    }  

    _getch();
}

Пожалуйста помогите. В этом случаев только каждые три символа. Как можно вывести на экран каждое третье слово.

#include <iostream>
#include <conio.h>
#include <cstring>

using namespace std;

int main()
{
    char s[100];
    char *ps;
    cout<<"\n Input the string: ";
    gets(s);
    ps = strtok(s," ");
    while (ps != NULL) {
        cout<<ps<<endl;
        ps = strtok(NULL, " "); }   

    _getch();
}

Так что он делится на слова. Так что он делится на слова.Как можно вывести на каждое третье слово.

nick
  • 1
  • 1
  • Сначала нужно разделить строку на слова, вы этого не делаете. – Владимир Мартьянов Mar 14 '16 at 09:28
  • Как можно сделать это? – nick Mar 14 '16 at 10:35
  • 1
    Формулируете что такое слово, пишете код для разделения на слова в соответствии с выбранной формулировкой... Ниже уже написали какие функции вполне подойдут. – Владимир Мартьянов Mar 14 '16 at 10:36
  • Завести счетчик и выводить каждое третье слово. И, кстати, можно ли использовать библиотечные функции (см. комментарий @newman)? – Konstantin Les Mar 14 '16 at 11:34

1 Answers1

1

Необходимо разбить входную строку на слова - группы символов, между которыми имеется не менее одного символа-разделителя (пробел, табуляция и т.п.).
Для выполнения этой задачи могут быть использованы входящие в стандартную библиотеку функции strchr, strpbrk и strtok (применительно к приведенной в вопросе реализации).

  • Как мне кажется, с использованием этих функций лабораторку не примут. – newman Mar 14 '16 at 11:23