Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
#1

Ввести предложение, и вывести самое короткое слово?

12.03.2010, 23:59. Просмотров 1907. Ответов 11
Метки нет (Все метки)

Ввести предложение, и вывести самое короткое слово???

Есть отдельная функция, которая удаляет подстроку со строки???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2010, 23:59
Ответы с готовыми решениями:

Ввести строку, вывести самое короткое слово.
Ввести строку, вывести самое короткое слово. Добавлено через 23 часа 12...

Нужно ввести строку и вывести самое длинное и короткое слово
Можно ли вообще записать символы из статической строки в динамическую? Не могу...

Ввести строку, содержащую несколько слов. Определить самое длинное и самое короткое слово
Здравствуйте, не могли бы мне помочь с кодом. Как его переписать, чтобы...

Ввести последовательность предложений. Найти самое длинное слово среди них и вывести предложение с этим словом
Ввести последовательность предложений. Найти самое длинное слово среди них и...

Вывести самое длинное и самое короткое слово из строки
Хочу сделать через strtok, но толком не знаю как именно. #include <iostream>...

11
R0mm
Псевдо программист
192 / 113 / 37
Регистрация: 19.09.2009
Сообщений: 303
14.03.2010, 08:54 #2
MILAN, какой язык программирования-то?
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 12:19  [ТС] #3
Желательно на С!
0
R0mm
Псевдо программист
192 / 113 / 37
Регистрация: 19.09.2009
Сообщений: 303
14.03.2010, 13:48 #4
MILAN, как то так

Примечание: на вход подаются слова разделенные пробелами(любым количеством), не более 256 символов в строке

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 <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
 
int main() {
    char Buff[256];
    char *pSmallWord;
    char *pCurWord;
    int BuffSize(0);
    int SmallWordSize(0);
    int CurWordSize(0);
 
    printf("Enter the string:\n");
    gets(Buff);
 
    BuffSize = strlen(Buff);
    pSmallWord = pCurWord = Buff;
    SmallWordSize = 257;
 
    for (int i=0; i<BuffSize+1; i++) {
        if (Buff[i]==' ' || Buff[i]=='\0') {
            if (Buff[i-1]!=' ') {
                if (CurWordSize<SmallWordSize) {
                    pSmallWord = pCurWord;
                    SmallWordSize = CurWordSize;
 
                }
                while (Buff[i+1]==' ') i++;
                pCurWord = &Buff[i+1];
                CurWordSize = 0;
            }
        }
        else {
            CurWordSize++;
        }
    }
 
    int n = strlen(pSmallWord);
    for (int i=0; i<n; i++) {
        if (pSmallWord[i]==' ') {
            pSmallWord[i] = '\0';
            i = n+1;
        }
    }
    printf("Result:\n%s", pSmallWord);
    getchar();
    return 0;
}
1
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 13:56  [ТС] #5
Как то сложно! Я думал можна строку розбить strtok, потом каждое слово проверять, менше ли оно минимума, и так далее. Только я незнаю как мне удалить слово со стороки???
0
R0mm
Псевдо программист
192 / 113 / 37
Регистрация: 19.09.2009
Сообщений: 303
14.03.2010, 13:59 #6
Цитата Сообщение от MILAN Посмотреть сообщение
можна строку розбать strtok, потом каждое слово проверять, менше ли оно минимума, и так далее
собственно так программа и работает, за исключением функции strtok
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 14:32  [ТС] #7
То есть покороче нельзя ее записать?
0
R0mm
Псевдо программист
192 / 113 / 37
Регистрация: 19.09.2009
Сообщений: 303
14.03.2010, 14:34 #8
MILAN, ну можно удалить пробелы, и переносы строк
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 14:38  [ТС] #9
Спасибо!!!
0
outoftime
║XLR8║
756 / 656 / 211
Регистрация: 25.07.2009
Сообщений: 3,289
Записей в блоге: 5
14.03.2010, 14:57 #10
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 <sstream>
#include <string>
using namespace std;
 
int ckeck(string &s) { return *s.rbegin() == '.' || *s.rbegin() == ','; }
int main()
{
    string s, text, res;
    stringstream tmp;
    getline(cin, text);
    cout << text << endl;
    tmp << text;
    res = text;
    while (tmp >> s)  
    { 
        if (ckeck(s)) s.resize(s.size()-1);   
        if (s.size() < res.size()) res = s;
    }
    cout << res << endl;
    system("pause");
}
А так проще))
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 15:19  [ТС] #11
Ето на С????
0
outoftime
║XLR8║
756 / 656 / 211
Регистрация: 25.07.2009
Сообщений: 3,289
Записей в блоге: 5
14.03.2010, 15:23 #12
вообще-то нет, но на все си++ функции что я юзал можно подобрать эквивалент на сишнике, и длина кода от этого не сильно пострадает
0
14.03.2010, 15:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2010, 15:23

Вывести самое короткое слово
Вывести самое короткое слово введенной с клавиатуры текстовой строки. ...

Из введенного текста вывести самое короткое слово
Ребята помогите написать элементарную программу : Из введенного текста...

Поменять местами самое длинное слово и самое короткое слово в тексте
Пусть есть двумерный массив, заполненный символами. Рассматривать его как...


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

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

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