Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
 Аватар для Keks_Stolicny
9 / 8 / 4
Регистрация: 22.10.2017
Сообщений: 162

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

20.11.2017, 22:23. Показов 4204. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно ввести строку найти наименьшее слово и вывести на экран его порядковый номер и количество символов.
Выдаёт ошибку уже после компиляции. Вот код :

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
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int counter = 0, word = 0, size;
 
    cout << "Введите количество символов в строке (<80) : ";
    while (!(cin >> size) || (cin.peek() != '\n') || size > 80 ) 
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Ошибка! Введите цифры!" << endl;
    }
 
    char * str = (char*) malloc(size + 1);
 
    cout << "Введите текст : ";
        
    for (int i = 0; i < size; i++)
        cin >> str[i];
 
 
    int min = size - 1;
 
    for (int i = 0; i < size; i++)
        if (str[i] != ' ') counter++;
        else if ( counter < min)
        {
            min = counter;
            counter = 0;
            word++;
        }
 
    cout << "Слово с минимальным количеством символов имеет номер : " << word << "\n";
    cout << "Количество символов данного слова : " << min << "\n";
 
    free(str);
 
    _getch();
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2017, 22:23
Ответы с готовыми решениями:

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

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

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

4
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
20.11.2017, 22:30
Keks_Stolicny, какую ошибку выдает, если что убери #include "stdafx.h"
0
 Аватар для Keks_Stolicny
9 / 8 / 4
Регистрация: 22.10.2017
Сообщений: 162
20.11.2017, 22:40  [ТС]
_stanislav, не помню, оно один раз выскочило, и я нажал "пропустить". Программа компилируется и после ввода строки выскакивала ошибка. Суть в том, что код работает неверно. Если я ввожу str[80] то код работает правильно, но тогда будет мусор, решил сделать динамический массив. Может можно другим способом?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
21.11.2017, 10:06
Keks_Stolicny,
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
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
 
int main(int argc, char* argv[] )
{
    std::cout << "Enter the words:" << std::endl;
 
    std::vector<std::string> words;
    std::string buffer; 
 
    std::getline(std::cin, buffer);
    std::istringstream isStream(buffer);
 
    while (isStream >> buffer)
        words.push_back(buffer);
 
    if (words.empty() )
    {
        std::cout << 0;
        return 0;
    }
 
    buffer = words.front();
    size_t index = 1;
    for (size_t i = 1; i < words.size(); i++)
    {
        std::string& r = words[i];
        if (buffer.length() > r.length() )
        {
            buffer = r;
            index = i;
        }
    }
        
    std::cout << "Word: "   << buffer          << std::endl
              << "Length: " << buffer.length() << std::endl
              << "Index: "  << index + 1;
 
    return 0;
}
1
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
21.11.2017, 13:53
Keks_Stolicny, здравствуйте! Вот мой вариант (только латинские символы):

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
#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    string str, s, word;
    int num, k, min = 100;
    cout << "Enter a string (ENG):" << "\n";
    getline(cin, str);
    str += ' ';
    k = 0;
    for (int i = 0; i < str.size(); i++)
    {
        s += str[i];
        if (!(isalpha(str[i])))
        {
            s.erase(s.size() - 1, 1);
            if (s != "")
            {
                k++;
                if (s.size() < min)
                {
                    min = s.size();
                    num = k;
                    word = s;
                }
            }
            s = "";
        }
    }
    cout << "The searched word: " << word << "\n";
    cout << "The word sequence number: " << num << "\n";
    cout << "The searched word length: " << min << "\n"; //word.size()
    cin.get();
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.11.2017, 13:53
Помогаю со студенческими работами здесь

Найти и вывести на экран максимальный элемент массива, а также его порядковый номер
Найти и вывести на экран максимальный элемент данного массива U(10), а также его порядковый номер

Вывести самое длинное слово и его порядковый номер в исходной строке
Здраствуйте,мне нужно вывести самое длинное слово и его порядковый номер в исходной строке.Спасибо

Найти самое маленькое слово и записать его порядковый номер
В общем,задание такое,найти самое маленькое слово и записать его порядковый номер,буду премного благодарен:good: А вот ошибки: &lt;:...

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

Скопировать текст из одного файла в другой, добавляя порядковый номер строки и количество символов в ней
Помогите с задачей, пожалуйста!!!:) спасибо заранее! Описать функцию Lines(FileIn, FileOut), которая считывает из входного файла...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru