Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
ololo_xa
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 55
#1

Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове

18.01.2016, 01:18. Просмотров 1106. Ответов 2
Метки нет (Все метки)

Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2016, 01:18
Ответы с готовыми решениями:

Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове
народ плиз помогите написать прогу в с++ Дана строка символов, состоящая из произвольного текста,...

Дана строка. Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове.
Помогите в решении, пожалуйста. Дана строка символов, состоящая из произвольного текста, слова...

Вывести порядковый номер слова минимальной длины и количество символов в этом слове
Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Вывести на...

Вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается
и так, вот условие: дана строка символов, состоящая из произвольного текста, слова разделены...

Дана строка символов, состоящая из произвольного текста, слова раз-делены пробелами. Вывести на экран порядковый номер слова, накрывающего k позицию
Помогите с вот такой вот задачкой: Дана строка символов, состоящая из произвольного текста,...

2
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
18.01.2016, 13:58 #2
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

ololo_xa, Наделал костылей, но работает.
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
#include <iostream>
#include <vector>
#include <sstream>
#include <algorithm>
 
using namespace std;
 
int main() {
    string str = "asd qwe adgj kqjwj q fignya pusto clean";
    string str2;
    vector<string> vec;
    stringstream ss(str);
    while(ss) {
        ss >> str2;
        vec.push_back(str2);
    }
    vec.erase((--vec.end()));
    auto min = min_element(vec.begin(),vec.end(),[](string&str,string&str2){
        return str.size() < str2.size();});
    int i = 0;
    for( auto pos = vec.begin(); pos != vec.end(); ++pos,++i ) {
        if( *pos == *min ) {
            break;
        }
    }
    cout << "pos min: " << i << "\ncount simbols: " << 
            vec[i].size() << endl;
    cin.get();
    return 0;
}
0
Lawliet1
29 / 32 / 18
Регистрация: 30.09.2011
Сообщений: 202
Завершенные тесты: 1
19.01.2016, 22:00 #3
Вот, держи (старался комментировать по максимуму, так что рассказывать где, что и как не буду)
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
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <string>
 
using namespace std;
 
enum check { NO, YES };
 
//----------------------------------------------
 
int main ()
{
    setlocale (LC_ALL, "Rus");
 
 
    string str;                                                                                 // ввод строки и определение всех необходимых переменых
    cout << "Введите стрку: "; getline (cin, str);
    int minLenght, beginOfWord, numberOfWord, count;
    count = numberOfWord = minLenght = 0;
    check space = YES;                                                                          // для проверки начала/конца слова
 
 
    for (size_t j = 0; j < str.size (); j++)                                                             
    {
        if (space == YES && str[j] != ' ')                                                      // был пробел, а теперь буква?
        {                                                        
            count++;                                                                            // увеличиваем счетчик слов
            beginOfWord = j;                                                                    // начало слова = счетчик цикла 
            space = NO;                                                                         // в следующей итерации цикла будет известно, что предыдущий символ не пробел
        }
        else if ((space == NO && str[j] == ' ') || (space == NO && j == (str.size () - 1)))     // была буква, а теперь пробел? (+ проверка на последнее слово в строке)
        {
            space = YES;                                                                        // ......
            if (minLenght == 0)                                                                 // если это первое слово в строке
            {
                    minLenght = j - beginOfWord;
                    numberOfWord = count;
                    continue;
            }
            else                                                                                // если это не первое слово 
            {
                if (minLenght > j - beginOfWord && j == (str.size () - 1))                      // если это слово меньше предыдущих и это последнее слово в строке
                {
                        minLenght = j - beginOfWord + 1;
                        numberOfWord = count;
                }
                else if (minLenght > j - beginOfWord)                                           // если это слово меньше предыдущих
                {
                    minLenght = j - beginOfWord;
                    numberOfWord = count;
                }
                else
                    continue;
            }
        }
    }
    cout << "Порядковый номер слова минимальной длины: " << numberOfWord
         << "\nКоличество символов в слове минимальной длины: " << minLenght << endl;;
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2016, 22:00

Найти наименьшее слово строки и вывести на экран его порядковый номер и количество символов
Нужно ввести строку найти наименьшее слово и вывести на экран его порядковый номер и количество...

Вывести порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается
как вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой...

Строки. Поиск слова минимальной длины, вывод этой длины, номер слова и само слово
Как организовать решение такой задачи? Может как-то через создание массивов, в ячейках которых...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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