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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
#1

Короткое и длинное слово - C++

23.11.2009, 18:18. Просмотров 654. Ответов 3
Метки нет (Все метки)

Найти в строке самое короткое и самое длинное слова.

Не понимаю как тут делать...Напишите,пожалуйста, на языке С (не С++).
Тут надо использовать strlen, но как?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2009, 18:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Короткое и длинное слово (C++):

Определить самое длинное и короткое слово - C++
Задача: Ввести строку, содержащую несколько слов. Определить самое длинное и самое корот-кое слово. Код: #include <iostream> using...

Определить самое длинное и короткое слово - C++
Задача: Ввести строку, содержащую несколько слов. Определить самое длинное и самое короткое слово. Код: #include <iostream> using...

Как найти самое длинное (короткое) слово? - C++
как найти самое длинное(самое короткое) слово? #include <iostream> #include <sstream> #include <string> #include <algorithm> ...

Поменять местами самое длинное слово и короткое - C++
Суть задачи: Строка из слов разделенная одним или несколькими пробелами, поменять местами самое короткое и самое длинное слово. int...

Распечатать длинное и короткое слово в строке при заданном условии - C++
Заданная строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
23.11.2009, 18:20 #2
сначала strtok, потом strlen
0
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
23.11.2009, 18:29  [ТС] #3
Rififi, а счетчик надо ставить?
Сначала разбиваю строку на отдельные слова, эти слова записываю в двумерный массив p [][1], потом считаю кол-во букв в словах?
не очень понимаю как это надо записать...
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
23.11.2009, 20:57 #4
NastiKor, почти всё верно, но лучше записывать слова в массив указателей. Например так
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAXW 512
 
/* сравнение длин двух строк (слов) */
int slencmp(const void *p1, const void *p2)
{
    char *s1, *s2;
 
    s1 = * (char **) p1;
    s2 = * (char **) p2;
    return strlen(s1) - strlen(s2);
}
 
int main(void)
{
    int i, nw;
    char line[4096], *wordsptr[MAXW], *p;
    const char *delim = " ,:.!?";
 
    printf("Введите строку: ");
    if(fgets(line, sizeof(line), stdin) == NULL)
        return 1;
    
    line[strlen(line)-1] = '\0';
 
    /* 
     * разбиваем строку на слова и добавляем их
     * в массив указателей wordsptr
     */
    for(i = 0, p = line; i < MAXW && 
            (p = strtok(p, delim)) != NULL; i++, p = NULL)
        wordsptr[i] = strdup(p);
 
    /* число считанных слов */
    nw = i;
 
    /* сортировка слов по возрастанию длин */
    qsort(wordsptr, nw, sizeof(char *), slencmp);
 
    printf("Самое короткое слово: %s\n", wordsptr[0]);
    printf("Самое длинное слово: %s\n", wordsptr[nw-1]);
 
    /* освобождение памяти из-под массива */
    for(i = 0; i < nw; i++)
        free(wordsptr[i]);
 
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2009, 20:57
Привет! Вот еще темы с ответами:

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

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

Дан текст из нескольки строк, определить самое длинное и самое короткое слово - C++
Вот задание: Дан текст из нескольки строк, определить самое длинное и самое короткое слово.... Я смог решить тока для одной...

Ввести строку, содержащую несколько слов. Определить самое длинное и самое короткое слово - C++
Здравствуйте, не могли бы мне помочь с кодом. Как его переписать, чтобы программа работала? #include &lt;iostream&gt; #include &lt;cstdlib&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.11.2009, 20:57
Ответ Создать тему
Опции темы

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