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

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

Восстановить пароль Регистрация
 
trouble135
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 46
12.11.2012, 21:42     Определить длину и позицию слова, которое имеет наименьшую длину в строке #1
Определить длину и позицию слова, которое имеет наименьшую длину в строке.
Строки

Пожалуйста помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2012, 21:42     Определить длину и позицию слова, которое имеет наименьшую длину в строке
Посмотрите здесь:

C++ Найти длину второго слова в строке
Строки: верно ли, что в заданной строке любое несимметричное слово имеет четную длину C++
Определить длину самого короткого слова в символьной строке C++
Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длину C++
C++ Задан текст. Вывести первое слово, которое имеет заданную длину
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
12.11.2012, 21:51     Определить длину и позицию слова, которое имеет наименьшую длину в строке #2
Конкретней объясни условие задачи. Непонятное условие.
Sawyer1988
10 / 10 / 0
Регистрация: 04.03.2012
Сообщений: 128
12.11.2012, 21:55     Определить длину и позицию слова, которое имеет наименьшую длину в строке #3
для начала определяешь в массиве символы, которые к словам не относятся:
C++
1
2
3
4
5
6
7
8
char replace_str [] = {'.',',','!','?',':',';'};
string stroka=":1:!1 2?2 3 4; 5; 6tab5  y5 "; //сама строка
 
// и ловишь
    for (int j=0;j<sizeof(replace_str);j++)
      for (i=str.find(replace_str[j]);i!=string::npos; i = str.find(replace_str[j], i+1) )
        if (i>0 )
        ... //тут уже надо подумать)
trouble135
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 46
12.11.2012, 22:09  [ТС]     Определить длину и позицию слова, которое имеет наименьшую длину в строке #4
Вводим текст, ищем меньше слово, находим длину и позицию слова.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
12.11.2012, 22:54     Определить длину и позицию слова, которое имеет наименьшую длину в строке #5
Решил через multimap сделать:
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
#include <iostream>
#include <map>
#include <sstream>
#include <iomanip>
using std::cout;
using std::endl;
using std::string;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    string str = "Thedfgh standard library provides facilities to obtain values"
        "that are returned and to catch exceptions that are thrown by "
        "asynchronous tasks, that is, by the functions launched on threads. "
        "These values are communicated in a shared state, in which the "
        "asynchronous task may write its return value or store an exception, "
        "and which may be examined, waited for, and otherwise manipulated by "
        "other threads that hold instances of std::future or std::shared_future"
        " that reference that shared state.";
    string temp;
    std::stringstream ss(str);
    std::multimap<size_t, string> mymap;
    while (ss>>temp)
    {
        if (temp.size() == 1 || temp.size() == 2)
            continue;
        mymap.insert(make_pair(temp.size(), temp));
    }
    for (auto it = mymap.cbegin(); it != mymap.cend(); it++)
        cout<<std::setw(20)<<(*it).second<<" : "<<(*it).first<<endl;
    cout<<"\n\n****************************************************\n"
        "Наименьшее слово "<<(*mymap.cbegin()).second<<" в позиции :"
        <<str.find((*mymap.cbegin()).second)<<endl;
    system("pause");
    return 0;
}
trouble135
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 46
14.11.2012, 23:30  [ТС]     Определить длину и позицию слова, которое имеет наименьшую длину в строке #6
А можешь пожалуйста как-то проще написать,а то я не сильно понимаю??Спасибо

Добавлено через 21 час 53 минуты
+++++++

Добавлено через 3 часа 3 минуты
______________

Добавлено через 21 час 43 минуты
________________

Добавлено через 1 час 48 минут
________________
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 16:24     Определить длину и позицию слова, которое имеет наименьшую длину в строке
Еще ссылки по теме:

C++ В строке отсортировать слова и вывести их длину
C++ Узнать длину строки и длину каждого слова
C++ Найти длину указанного слова в строке

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
15.11.2012, 16:24     Определить длину и позицию слова, которое имеет наименьшую длину в строке #7
Можно еще так (этот вариант мне больше нравится):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
 
int main()
{
    setlocale (LC_ALL, "Russian");
    std::string str = "Определить длину и позицию слова, которое имеет наименьшую длину в  строке";
    std::istringstream iss(str);
    auto compare = [] (const std::string& s1, const std::string& s2) 
    {
        if (s1.size() <= 2 || s2.size() <= 2)
            return false;
        return s1.length()<s2.length();
    };
    std::string less = *std::min_element(std::istream_iterator<std::string>(iss), std::istream_iterator<std::string>(), compare);
    std::cout<<"Наименьшее слово: '"<<less<<"' в позиции : "<<str.find(less)<<std::endl;
    system("pause");
    return 0;
}
Yandex
Объявления
15.11.2012, 16:24     Определить длину и позицию слова, которое имеет наименьшую длину в строке
Ответ Создать тему
Опции темы

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