imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 14.05.2006, 16:56     # 1
Ulka
Guest
 
Сообщения: n/a

C++ Работа со строками!

Привет всем! Может быть кто нибудь сможет помочь решить одну задачку на С++??
Нужно найти ОБЩЕЕ МАКСИМАЛЬНОЕ слово из ввёденных 2-Х предложений с клавиатуры.
Если ктото сможет помочь помоги плизз!
 
Старый 14.05.2006, 17:31     # 2
Псих
::VIP::
Guinness Liker
Понаехало тут
 
Аватар для Псих
 
Регистрация: 26.01.2003
Адрес: В нейроне
Пол: Male
Сообщения: 2 848

Псих СуперБогПсих СуперБог
Псих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБог
Это раздел по веб - скриптам. Вам нужно в програмирование!
__________________
меня не вылечат
Псих вне форума  
Старый 15.05.2006, 19:25     # 3
Ulka
Guest
 
Сообщения: n/a

спасибо я както сразу и не сообразтла
 
Старый 16.05.2006, 07:38     # 4
PSyton
Junior Member
 
Аватар для PSyton
 
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187

PSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форуме
Приверно так (чистой воды C++), на 100% не тестил - работа, знаете-ли.
А, да еще, знаки препинания не учитывались!!! Но думаю это добавить будет не сложно и без меня, если надо.
Код:
#include <iostream>
#include <set>
#include <string>

typedef std::set<std::string> SList;

//Функция ввода предложения
void readSentence(SList &strlist)
{
  using namespace std;
  strlist.clear();
  cin.clear();
  char buffer[1024];
  cin.getline(buffer,1023);
  char *si=buffer;
  char *start=si;
  //Split string
  for (;*si!=0;si++)
  {
    if (' '==*si)
    {
      *si=0;
      string str=start;
      if (!str.empty())
        strlist.insert(str);
      start=si+1;
    }
  }
  if (*start!=0) // Insert last word
    strlist.insert(string(start));
}

//основная программа
int main(int argc, char* argv[])
{
  using namespace std;
  SList _list[2];
  for (int i=0;i<2;i++) 
  {// Воодим предложения
    cout << endl << "enter " << i << "sentence" << endl;
    readSentence(_list[i]);
  }
  if (_list[0].empty() || _list[1].empty())
  { //если хотя бы одно предложение пустое.
    cout << endl << "No words found!";
  }
  else
  { // ищем 
    SList::const_iterator iter=_list[0].begin();
    SList::const_iterator enditer=_list[0].end();
    size_t maxlen=0;
    string needWord;
    for (;iter!=enditer;++iter) // просматриваем все слова одного из предложений
    {
      if (_list[1].find(*iter)!=_list[1].end()) //сово есть во втором
      {
        if (maxlen<(*iter).size()) //смотрим, длинее ли оно ранее найденного
        {
          maxlen=(*iter).size();
          needWord=*iter;
        }
      }
    }
    if (needWord.empty()) //выводим резульата поиска.
      cout << endl << "No word found!";
    else
      cout << endl << "Found word: '" << needWord.c_str() << "'" << endl;
  }
  return 0;
}
__________________
Дураки не динозавры - они не вымрут...
PSyton вне форума  
Старый 19.05.2006, 01:31     # 5
Ulka
Guest
 
Сообщения: n/a

PSyton БАЛЬШОЕ СПАСИБО!
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 13:25.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.