Строки

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем venti, 20 июн 2012.

  1. venti

    venti Гость

    программа заключается в том,что нужно удалить повторяющиеся слова,текст вводится в Memo,я его толком не знаю,поэтому и не могу написать. Есть код на с#, но я немного переделал на с++,а в чем ошибки не знаю
    Код (C++):
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    string q = Memo1->Lines;
    string[] str = q->Split(' ',',','.');
    for (int i = 0; i < str->Length;i++)
    for (int j = 0; j < str->Length; j++)
    {
    if ((str[i] == str[j])&&(j!=i))
    str[j] = "";
    }
    string ss = String->Join(" ", str);
    Memo2->Clear();
    Memo2->Append(ss);
    }
     
  2. venti

    venti Гость

    вот еще немного отредактировал,но до ума довести никак не могу
    Код (C++):
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    string lst = Memo1->Lines;
    string[] slovo = split(lst,slovo,", :;'-");
    for (int i = 0; i < slovo->Length;i++)
    for (int j = 0; j < slovo->Length; j++)
    {
    if ((slovo[i] == slovo[j])&&(j!=i))
    slovo[j] = "";
    }
    string nov = string->Join(" ", slovo);
    Memo2->Clear();
    Memo2->Append(nov);
    }
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    я бы сделал так...
    завел бы я список строк... типа
    Код (Text):
    std::list< std ::string > lstStr;
    Текст который вводится в Memo я бы запихал в поток, как то так:
    Код (Text):
    std ::stringstream sstr;
    sstr << text;
    потом бы считывал из текста слово и искал бы его в списке, если не найдено - помещаю в конец списка
    Код (Text):
    while( 0 == sstr .eof() ) {
    sstr >> str;
    if( strLst .end() == std ::find( strLst .begin(), strLst .end(), str ) )
    strLst .push_back( str );
    }
    и останется только вывести список
    Код (Text):
    std ::for_each( strLst .begin(), strLst .end(), [](string s) { std ::cout << s; } );
    не проверял, МБ опечатался где-то
     
  4. Eleno4ka

    Eleno4ka Гость

    вариант хороший, даже отличный но есть одно НО, учитывая общую сложность программы смею предположить что потоки и большинство std функций не были изучены спрашивающим. У нас лично в такой ситуации сразу "били по голове" если кто-то приносил замудренный код, никак не на текущую стадию обучения
     
Загрузка...

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