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

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

16.05.2011, 13:10. Показов 3271. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru