Форум программистов, компьютерный форум CyberForum.ru

Определить короткое слово в заданном тексте - C++

Восстановить пароль Регистрация
 
Kristal_Sharko
1 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 55
17.06.2014, 12:49     Определить короткое слово в заданном тексте #1
определить короткое слово в заданном тексте
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2014, 12:49     Определить короткое слово в заданном тексте
Посмотрите здесь:

в заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз C++
Поменять местами самое длинное слово и самое короткое слово в тексте C++
C++ В заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз.
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово. C++
Строки (В произвольном тексте найти самое короткое слово) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
evelolka
 Аватар для evelolka
2 / 2 / 0
Регистрация: 25.10.2013
Сообщений: 108
17.06.2014, 12:52     Определить короткое слово в заданном тексте #2
Цитата Сообщение от Kristal_Sharko Посмотреть сообщение
определить короткое слово в заданном тексте
пиши конкретнее: из файла текст или введённый в консоль?
Kristal_Sharko
1 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 55
17.06.2014, 12:54  [ТС]     Определить короткое слово в заданном тексте #3
сами вводим
evelolka
 Аватар для evelolka
2 / 2 / 0
Регистрация: 25.10.2013
Сообщений: 108
17.06.2014, 12:59     Определить короткое слово в заданном тексте #4
циклом разбей строку на слова и потом спомощью sizeof сравнивай и сохраняй меньшее
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
17.06.2014, 13:12     Определить короткое слово в заданном тексте #5
Цитата Сообщение от evelolka Посмотреть сообщение
спомощью sizeof сравнивай
как?

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>
#include <vector>
 
bool is_not_spliter ( char x )
{
   return isalnum(x) ;
}
 
bool is_spliter ( char x )
{
   return !is_not_spliter(x) ;
}
 
std::vector < std::string > split ( const std::string & text )
{
   std::vector < std::string > result ;
   for ( std::string::const_iterator it = std::find_if ( text.begin() , text.end() , is_not_spliter ), endIterator = text.end() ; it != endIterator ; it = std::find_if ( it , text.end() , is_not_spliter ) ) {
      std::string::const_iterator temp_it = std::find_if ( it , text.end() , is_spliter ) ;
      result.push_back ( std::string ( it , temp_it ) ) ;
      it=temp_it ;
   }
   return result ;
}
 
 
bool string_size_less ( const std::string & first , const std::string & second )
{
   return first.size() < second.size() ;
}
 
int main ( )
{
   std::string text = "My name is Boris! I am president" ;
   //std::cout << "String->" ;
   //std::getline ( std::cin , text ) ;
   std::cout << "\nResult:\n" ;
   const std::vector < std::string > & vec_ref = split ( text ) ;
   std::vector < std::string >::const_iterator itMin = std::min_element ( vec_ref.begin() , vec_ref.end() , string_size_less ) ;
   if ( itMin != vec_ref.end() ) {
      for ( std::vector < std::string >::const_iterator it = vec_ref.begin() , endIterator = vec_ref.end() ; it != endIterator ; ++it )
         if ( it->size() == itMin->size() )
            std::cout << *it << ' ' ;
   }
}
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
17.06.2014, 13:12     Определить короткое слово в заданном тексте #6
Kristal_Sharko,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
int main() 
{
    string words;
    getline(cin, words);
 
    stringstream ss(words);
    string shWrd = words;
 
    for (string s; ss >> s;)
    {
        if (s.size() < shWrd.size())
            shWrd = s;
    }
 
    cout << "Short: " << shWrd << endl;
 
    return 0;
}
https://ideone.com/pPAu9k
Yandex
Объявления
17.06.2014, 13:12     Определить короткое слово в заданном тексте
Ответ Создать тему
Опции темы

Текущее время: 00:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru