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

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

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

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

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

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

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

Поменять местами самое длинное слово и самое короткое слово в тексте C++
C++ Дан текст из нескольки строк, определить самое длинное и самое короткое слово
C++ Найти самое короткое и самое длинное слово в строке
C++ В заданной строке определить самое длинное и самое короткое слово
C++ Распечатать длинное и короткое слово в строке при заданном условии
C++ Найти самое короткое и самое длинное слово в строке
Найдите самое длинное, и самое короткое слово в заданном предложении C++
Как найти самое длинное (короткое) слово? C++
C++ Ввести строку, содержащую несколько слов. Определить самое длинное и самое короткое слово
Определить самое длинное и короткое слово C++
C++ Поменять местами самое длинное слово и короткое
Определить самое длинное и короткое слово C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
23.11.2009, 18:20     Короткое и длинное слово #2
сначала strtok, потом strlen
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
23.11.2009, 18:29  [ТС]     Короткое и длинное слово #3
Rififi, а счетчик надо ставить?
Сначала разбиваю строку на отдельные слова, эти слова записываю в двумерный массив p [][1], потом считаю кол-во букв в словах?
не очень понимаю как это надо записать...
Gravity
557 / 551 / 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;
}
Yandex
Объявления
23.11.2009, 20:57     Короткое и длинное слово
Ответ Создать тему
Опции темы

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