1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Строки [c++]

Тема в разделе "Вопросы новичков и не только", создана пользователем -, 1 апр 2012.

  1. Гость

    Репутация:
    0
    Помогите с задачей.
    Дана строка символов. Группу символов, разделённую с одной или с обеих сторон одним или несколькими пробелами и не содержащую внутри себя пробелов назовём словом. Распечатаь все слова нечётной длины, в которых есть буква Т.
     
  2. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    Код:
    //
    #include <iostream>
    using namespace std;
    void main()
    {
    setlocale(LC_ALL,"RUS");
    char *u,s[80];
    cout<<"Введите строку:";
    gets(s);
    u=strtok(s," ");
    while(u)
    {
    if(strlen(u)%2!=0)
    for(int i=0;i<strlen(u);i++)
    if(u[i]=='Т')
    cout<<u<<"\n";
    u=strtok(NULL," ");
    }
    }
    //
     
  3. rrrFer

    rrrFer Гость

    Репутация:
    0
    однако, идентификатор s можно убрать:
    Код:
    //
    #include <iostream>
    using namespace std;
    void main()
    {
    setlocale(LC_ALL,"RUS");
    char *u = new char[80];
    cout<<"Введите строку:";
    gets(u);
    strtok(u," ");
    while(u)
    {
    if(strlen(u)%2!=0)
    for(int i=0;i<strlen(u);i++)
    if(u[i]=='Т')
    cout<<u<<"\n"; //тут явно не хватает break
    u = strtok(NULL," ");
    }
    delete u;
    }
    //
    Если в слове четной длины несколько букв "Т" то оно напечатается несколько раз.
    Не обратил бы внимания на программу если бы не эта строка: strtok(NULL," "); что-то невероятное.
     
  4. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    :) да break в том месте исправил бы повторение одного слова ))


    а почему strtok(NULL," "); что-то невероятное??
     
  5. rrrFer

    rrrFer Гость

    Репутация:
    0
    Ну так то да, вполне вероятное...в документации про это тоже написано )
    Но не представляю как они написали такую функцию
     
Загрузка...

Поделиться этой страницей