Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Задачка не получается
Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Приукрашиваем код (используя наши знания STL )
Код: Выделить весь код
#include <iostream>
#include <string>

void doTheJob(istream& is, const string& word1)
{
  if (is.rdbuf())  // чтобы потом не слететь обращением к нулевому адресу is.rdbuf()->sbumpc();
  {
   string expression;
   
   while (getline(is, expression, '.')) // прочитали до точки
   {
       unsigned pos1 = expression.find(word1);

       if (pos1!=-1 &&  // а есть ли слово внутри?
            (pos1==0 || !isalpha(expression[pos1-1]) && // а в начале слова ли оно
            (pos1 + word1.size()==expression.size() || !isalpha(expression[pos1 + word1.size()])) // а не в конце ли оно?
           )
       {
         // нашли :-)
         cout << "found: " << expression << endl;
       }

       is.rdbuf()->sbumpc();  // съели точку
   }
  }
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:18, 31-08-2007 | #4

Название темы: Задачка не получается