Форум программистов, компьютерный форум CyberForum.ru

Найти самое короткое из слов в предложении - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.96
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
04.11.2011, 12:05     Найти самое короткое из слов в предложении #1
задание на строки
Дана символьная строка.Слово-последовательность символов между пробелами, не содерж. пробелы внутри себя.Найти самое короткое из слов в предложении
Как написать?надо написать на обычном элементарном си, т.к. только начинаю программировать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2011, 12:05     Найти самое короткое из слов в предложении
Посмотрите здесь:

Даны два предложения. Найти самое короткое из слов первого предложения, которого нет во втором предложении C++
C++ Даны два предложения. Найти самое короткое из слов первого предложения,которого нет во втором предложений?
C++ самое короткое слово первой строки,которого нет во втором предложении
C++ самое короткое слов в строке
C++ В заданном предложении удалить самое короткое слово
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
06.11.2011, 20:57  [ТС]     Найти самое короткое из слов в предложении #41
-=ЮрА=-, это с 2мерными массивами?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
06.11.2011, 21:03
  #42

Не по теме:

Цитата Сообщение от keep-it-real Посмотреть сообщение
-=ЮрА=-, это с 2мерными массивами?
- нет же на первом проборе слов опредлили min_len длинну выводимых слов, на втором проборе, выводим только слова c min_len, вот и всё...

keep-it-real
06.11.2011, 21:09  [ТС]
  #43

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

- нет же на первом проборе слов опредлили min_len длинну выводимых слов, на втором проборе, выводим только слова c min_len, вот и всё...

можете показать в программе?

-=ЮрА=-
06.11.2011, 21:14
  #44

Не по теме:

Цитата Сообщение от keep-it-real Посмотреть сообщение
можете показать в программе?
- ок, но сейчас я занят, если никто вам не покажет, через пару часиков навестите топик, как вариант попробуйте за это врмя что то от себя представить и вам интересно будет и потом сравните с моим алгоритмом. PS:Я буду писать под свои for-ы, если вам нужен код accept пусть он свой приведёт ок?(я не люблю дописывать коды других продвинутых форумчан - каждый художник пишет свои картины и программисты тоже

keep-it-real
06.11.2011, 21:21  [ТС]
  #45

Не по теме:

-=ЮрА=-, без проблем

Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
06.11.2011, 21:46     Найти самое короткое из слов в предложении #46
Как вариант:

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
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define N 1024
 
int Min(char *s)
{
    int i, j, min = N;
    i = 0;
    while(s[i])
    {
        while(s[i] && s[i] == ' ')
           i++;
        j = i;
        while(s[i] && s[i] != ' ')
           i++;
        if (j < i && (i-j) < min)
           min = i - j;
    }
    return min;
}
 
void Print(char *s, int len)
{
    int i, j;
    char *word;
    i = 0;
    while(s[i])
    {
        while(s[i] && s[i] == ' ')
           i++;
        j = i;
        while(s[i] && s[i] != ' ')
           i++;
        if (i-j == len)
        {
            word = (char *)malloc((len+1)*sizeof(char));
            strncpy(word, s + j, len);
            word[len] = '\0';
            puts(word);
            free(word);
        }
    }
}
 
int main( )
{
    char s[N];
    gets(s);
    Print(s, Min(s));
    getch();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2011, 21:55     Найти самое короткое из слов в предложении
Еще ссылки по теме:

C++ В заданном предложении поменять местами самое длинное и самое короткое слова
C++ Заданный список из 8 слов. Найти самое короткое слово из списка
Найдите самое длинное, и самое короткое слово в заданном предложении C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
06.11.2011, 21:55     Найти самое короткое из слов в предложении #47
keep-it-real, как и обещал
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
#include <stdio.h>
#include <conio.h>
 
int main()
{
    long i;
    long sLen;//Будет содержать в себе длинну текущего слова
    long mLen = 1024;//Будет содержать в себе мин длинну слова в строке
    char str[1024] = {0};//исходная строка
    printf("\tEnter input string\n");
    //В Си строку с пробелами по другому думаю и не ввести!
    scanf("%[^\n]",str);//В str то что ввели в chr - '\n' от ввода
    char min_word[32] = {0};
    for(i = 0, sLen = 0; str[i] != '\0';i++)
    {
        if(str[i] == ' ' || str[i] == '\0')
        {
            if(sLen < mLen)
                mLen = sLen;
            sLen = 0;
        }
        else
            sLen++;
    }
    printf("Word with min len : \n");
    for(i = 0, sLen = 0; str[i] != '\0';i++)
    {
        if(str[i] == ' ' || str[i] == '\0')
        {
            if(sLen == mLen)
            {
                min_word[sLen] = '\0';
                printf("%s\n",min_word);
            }
            sLen = 0;
        }
        else
        {
            min_word[sLen] = str[i];
            sLen++;
        }
    }
    printf("Press any key to continue\n");
    getch();
    return 0;
}
Миниатюры
Найти самое короткое из слов в предложении  
Yandex
Объявления
06.11.2011, 21:55     Найти самое короткое из слов в предложении
Ответ Создать тему
Опции темы

Текущее время: 01:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru