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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
trouble135
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 46
#1

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

12.11.2012, 21:42. Просмотров 1034. Ответов 6
Метки нет (Все метки)

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

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

Найти слово которое имеет наименьшую длину - C++
То что я имею: #include "stdafx.h" #include "string" #include "vector" #include <iostream> #include <algorithm> int...

Определить длину самого короткого слова в символьной строке - C++
дано символьная строка. Слово-последовательность символов между пробелами, не содержащие пробелы внутри себя. Определить длину самого...

Задан текст. Вывести первое слово, которое имеет заданную длину - C++
Задан текст. Вывести первое слово, которое имеет заданную длину. Добавлено через 1 час 21 минуту Ребят помогите пожалуйста!

Узнать длину строки и длину каждого слова - C++
есть код который реверсирует слова в строке. Как узнать длину слова(например 3 слова ) и количество символов ? #include...

Строки: верно ли, что в заданной строке любое несимметричное слово имеет четную длину - C++
Дано символьный рядок.Проверить, чи верно что в заданной строке любое несеметричне слово имеет парную длину.

Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длину - C++
В файле находятся только целые числа. Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длину, и если да, то...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
12.11.2012, 21:51 #2
Конкретней объясни условие задачи. Непонятное условие.
0
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 )
        ... //тут уже надо подумать)
0
trouble135
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 46
12.11.2012, 22:09  [ТС] #4
Вводим текст, ищем меньше слово, находим длину и позицию слова.
0
DiffEreD
1430 / 767 / 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;
}
0
trouble135
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 46
14.11.2012, 23:30  [ТС] #6
А можешь пожалуйста как-то проще написать,а то я не сильно понимаю??Спасибо

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

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

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

Добавлено через 1 час 48 минут
________________
0
DiffEreD
1430 / 767 / 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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 16:24
Привет! Вот еще темы с ответами:

В строке отсортировать слова и вывести их длину - C++
Необходимо в строке отсортировать слова и вывести их длину. Стандартных функций не использовать.

Найти длину указанного слова в строке - C++
Нужно найти длину слову в строке. Строку и номер слова вводит пользователь. Вроде код написал, а прога выдает неправильный результат: l=24 ...

Найти длину второго слова в строке - C++
как найти длину второго слова в строке?

Вычислить длину слова с номером n в заданной строке - C++
Функция WordLength(s,n) Назначение: определение длины слова с номером n в строке s.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.11.2012, 16:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru