работа с текстом
От: Flagman  
Дата: 22.05.04 05:49
Оценка:
Люди, помогите если знаете сделать задание, очень нужно...
Дана строка, содержащая текст. Найти те слова в тексте, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними — только большие
Re: работа с текстом
От: ilnar Россия  
Дата: 22.05.04 09:16
Оценка:
Здравствуйте, Flagman, Вы писали:

F>Люди, помогите если знаете сделать задание, очень нужно...

F>Дана строка, содержащая текст. Найти те слова в тексте, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними — только большие

надо отделить сначало слова, например, массив s[i] — массив из n слов, каждая из s[i] — одно слово
потом
b[i] = s[i]<s[i+1] для всех i=0,n-2

если (b[i]==true && b[i+1]==true) то s[i+1] выводишь, для всех i=0,n-2

все массивы можно не хранить
Re[2]: работа с текстом
От: ilnar Россия  
Дата: 22.05.04 09:25
Оценка:
Здравствуйте, ilnar, Вы писали:

I>Здравствуйте, Flagman, Вы писали:


F>>Люди, помогите если знаете сделать задание, очень нужно...

F>>Дана строка, содержащая текст. Найти те слова в тексте, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними — только большие

I>надо отделить сначало слова, например, массив s[i] — массив из n слов, каждая из s[i] — одно слово

I>потом
I>b[i] = s[i]<s[i+1] для всех i=0,n-2

I>если (b[i]==true && b[i+1]==true) то s[i+1] выводишь, для всех i=0,n-2


I>все массивы можно не хранить


void aaaaaa(char** s, int n)
{
bool bi, bi1;
bi = strcmp(s[0], s[1])>0?true:false;
for(int i=0; i<n-2; i++)
{
bi1 = strcmp(s[i+1], s[i+2])>0?true:false;
if(bi && bi1)
{
// s[i+1] — подходит
}
bi = bi1;
}
}
Re: работа с текстом
От: Flagman  
Дата: 22.05.04 15:32
Оценка: -1
Люди, напишите програмку целиком пожалуйста а то я не совсем понял как отделить слова
Re: работа с текстом
От: Dog  
Дата: 22.05.04 16:09
Оценка:
F>Люди, помогите если знаете сделать задание, очень нужно...
F>Дана строка, содержащая текст. Найти те слова в тексте, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними — только большие

Если бить белку в лоб , то можно так

#include "stdafx.h"
#include <boost/tokenizer.hpp>
#include <string>
#include <iostream>
#include <algorithm>
#include <functional>


int _tmain(int argc, _TCHAR* argv[]){

  using namespace std;
  using namespace boost;

  vector<string> in_;
  string str = "a b e h c f g e f ha z x y";

  tokenizer<> tok(str);
  for(tokenizer<>::iterator it = tok.begin(), end = tok.end(); it != end; ++it){
      if(find_if(tok.begin(), it, bind2nd(greater<string>(), *it)) == it)
         if(find_if(it, end, bind2nd(less<string>(), *it)) == end)
            cout << *it << endl;
  }
  return 0;
}


Если в глаз, то можно ещё пошаманить
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.