Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 06.03.2011
Сообщений: 4

Найти в каждой строке текста слова наименьшей длины и вывести на экран

16.05.2011, 13:10. Показов 3297. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

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

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
while(!feof(F))
                {fgets(s,80,F);
                 
            maxLen = 0;
       int lineLen = strlen(s);
    //Поиск слов с максимальной длиной символов
    
    for(i=0; i < lineLen + 1; i++)
    // i номер позиции в строке
    // len текущий показатель длины слова
    // maxLen длина самого длинного слова
    {
       if(s[i]!=' ' && s[i]!='\n' && i<lineLen-1 && s[i] !=',' && s[i] !='.' && s[i]!='\0')
        {
            len++;
        }
       else
        {
            if(i==lineLen-1){len++;i++;}
            if(len>maxLen){maxLen=len;}
            len=0;
        }
    }
    //зная длину самого длинного слова, заного читаем текст из массива s[] 
    
    printf("\n ");
    for(i=0; i < lineLen + 1; i++)
    {
        if(s[i]!=' ' && s[i]!='\n' && i<lineLen-1 && s[i]!='\0' && s[i]!=',' && s[i]!='.')
         {
            len++;
         }
        else
         {
            if(i==lineLen-1){len++;i++;}
            if(len==maxLen)
             { 
                
                 for(int j=i-maxLen; j<=i; j++)
                 {
                    
                    printf("%c", s[j]); 
                 }
                    printf("\n");
             }
                
            len=0;
         }
    }}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2011, 13:10
Ответы с готовыми решениями:

В каждой строке текста найти слово максимальной длины и записать найденные слова и их длину в новый файл
1) Создать текст, вводя данные с клавиатуры, В каждой строке текста найти слово максимальной длины и записать найденные слова и их длину в...

Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке
Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке.

Вывод на экран слов в порядке убывания их длины в каждой строке текста
Здравствуйте товарищи, никак не получается написать функцию сортировки слов в порядке убывания их длины для каждой строки текста, очень...

6
16.05.2011, 13:12

Не по теме:

Ну вот почему то я не верю, что написав программу на поиск максимума, не можешь переделать на поиск минимума

0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
16.05.2011, 13:16
Цитата Сообщение от brise Посмотреть сообщение
То, что я написала
Ой ли)
C++
1
2
3
//тут было не правильно, удалил
// 20 строка
if(len<minLen){minLen=len;}
если сама написал, то остальное не проблема)
1
0 / 0 / 0
Регистрация: 06.03.2011
Сообщений: 4
16.05.2011, 13:20  [ТС]
наверное, у меня уже мозг заклинило... Я не так давно изучаю программирование.
Впрочем, речь не об этом. Я была бы благодарна, если бы Вы подсказали, как это сделать, если это не очень для Вас затруднительно.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
16.05.2011, 13:25
brise, на С++ или на С нужно?
0
0 / 0 / 0
Регистрация: 06.03.2011
Сообщений: 4
16.05.2011, 13:29  [ТС]
На С++.
Поменять знак в 20-ой строке - это и понятно. В том-то и дело, что я не могу разобраться, что дальше делать

Добавлено через 1 минуту
Понятно, если оставить minLen = 0, то условие len<minLen выполняться не сможет. А задать его другим числом тоже фигня какая-то получается. Я вообще кисель >.<
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
16.05.2011, 14:56
Цитата Сообщение от brise Посмотреть сообщение
На С++.
Думаю тебе нужно примерно это:
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
#include <iostream>
#include <cstring>
const char* minword(char*);
//########################
int main(){
    char s[80];
    std::cin.getline(s,79,'\n');
    const char *minwrd=minword(s);
    std::cout<<minwrd<<std::endl;
    delete []minwrd;
        return 0;
}
const char* minword(char *str){
#define DELIM ". ,:;?!"
//#########################
    char *wrd, *minwrd;
    int min;
    wrd=strpbrk(str,DELIM);
    min=(int)(wrd-str);
    minwrd=str;
    do{
        while((*wrd==' ')||(*wrd==',')||(*wrd=='.')||(*wrd==':')||(*wrd==';')||(*wrd=='?')||(*wrd=='!'))++wrd;
        str=wrd;
        wrd=strpbrk(str,DELIM);
        if(min>(int)(wrd-str)){
            min=(int)(wrd-str);
            minwrd=str;
        }
    }while(wrd);
    char *tmp=new char[min+1];
    strncpy(tmp,minwrd,min);
    return tmp;
}
В духе С )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2011, 14:56
Помогаю со студенческими работами здесь

Вывести на экран слова текста в порядке невозрастания их длины
Из произвольного текста, содержащего не более 10 строк, в каждой строке не более 80 символов, вывести на экран слова в порядке не...

Из введенного текста распечатать все слова наименьшей длины
Нужна помощь с задачкой... надо решить на простом Си... вот собственно она: Из введенного текста распечатать...

Подсчитать количество слов в строке, вывести на экран слова минимальной и максимальной длины
Ввести строку. Подсчитать количество слов в строке, вывести на экран слова минимальной и максимальной длины. Создайте массив указателей на...

Вывести последнее слово текста наименьшей длины
Дан текстовый файл. Вывести последнее слово текста наименьшей длины. Словом считать набор символов, не содержащий пробелов и ограниченный...

Вывести последнее слово текста наименьшей длины
Помогите пожалуйста написать программу: дан текстовый файл. Вывести последнее слово текста наименьшей длины. Словом считать набор символов,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru