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

Определить в предложении слова максимальной и минимальной длины и поменять их местами. C

14.10.2012, 12:49. Показов 2441. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток! Уважаемы программисты, помогите, пожалуйста решить задачу: Дана строка предложение. Определить в предложении слова максимальной и минимальной длины и поменять их местами. (Решить на С)
Я, понимаю, что задача не из лёгких, поэтому помогите решить хотя бы первую часть задачи, т.е. определение максимального и минимального слова в предложении.
Буду благодарен, да же за словесно описание, что мне примерно хоть делать то надо. А то я не понимаю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.10.2012, 12:49
Ответы с готовыми решениями:

В предложении поменять местами слова с максимальной и минимальной длинами
Для решения задачи необходимо подобрать подходящую динамическую структуру данных. В предложении поменять местами слова с максимальной и...

Поменять местами слова максимальной и минимальной длины в строке
Задание: Дана строка. Подсчитать количество символов в каждом слове. Сформировать новую строку, в которой слова с максимальной и...

Поменять местами слово максимальной и минимальной длины.
Поменять местами слово максимальной и минимальной длины. строки char*. Как это можно сделать? Слова в строке разделены пробелом или...

4
 Аватар для zitxbit
96 / 748 / 279
Регистрация: 11.04.2012
Сообщений: 971
14.10.2012, 18:40
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
void expand(char* str, int pos, int count)
{
    while (--count >= 0)
        for (int i = strlen(str)-1; i >= pos; i--)
            str[i+1] = str[i];
}
 
void shrink(char* str, int pos, int count)
{
    while (--count >= 0)
        for (int i = pos; str[i] != '\0'; i++)
            str[i] = str[i+1];
}
 
int main()
{
    static char str[256] = "pirate linux compuworks newest tux c++";
 
    printf("%s\n",str);
 
    int max_len = 0, max_pos = 0;
    int min_len = 256, min_pos = 0;
    for (int i = 0; str[i] != '\0'; i++)
        if (isspace(str[i]) || i == strlen(str)-1)
        {
            int k = i-1;
            while (!isspace(str[k]) && k >= 0) k--;
            if (i - k > max_len) { max_len = i - k - 1; max_pos = k + 1; }
            else if (i - k < min_len) { min_len = i - k - 1; min_pos = k + 1; }
        }
 
    char src[256] = "\0", dest[256] = "\0";
 
    int n1 = min_pos; int p1 = 0;
    int n2 = max_pos; int p2 = 0;
    while (!isspace(str[n1])) src[p1++] = str[n1++];
    while (!isspace(str[n2])) dest[p2++] = str[n2++];
        
    if (max_pos < min_pos)
    {
        min_pos-=max_len-min_len;
 
        shrink(str, max_pos, max_len - min_len); 
        expand(str, min_pos, max_len - min_len);
    }
 
    else {
            shrink(str, max_pos, max_len - min_len);
            expand(str, min_pos, max_len - min_len); 
            
            max_pos+=max_len-min_len;
    }
 
    memcpy((void*)&str[max_pos], (void*)src, strlen(src));
    memcpy((void*)&str[min_pos], (void*)dest, strlen(dest));
 
    printf("%s\n",str);
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/... 95e497b429
1
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 4
14.10.2012, 20:05  [ТС]
zitxbit, это программа у тебя работает?

Добавлено через 22 минуты
А у меня не на С не на С++ не работает(если ничего не переделывать). Выводит строку "pirate linux compuworks newest tux c++" и когда что-нибудь вводишь выкидывает. Может у меня С++ builder не такой?
0
 Аватар для zitxbit
96 / 748 / 279
Регистрация: 11.04.2012
Сообщений: 971
14.10.2012, 20:10
перейди по ссылке в конце кода на сайт liveworkspace.org и поменяй текст в строке str.
1
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 4
14.10.2012, 20:20  [ТС]
Всё равно не получается. Но и на этом спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.10.2012, 20:20
Помогаю со студенческими работами здесь

В файле заменить все слова максимальной длины на слова минимальной длины
Нужно в считанном из файла тексте заменить все слова максимальной длины на слова минимальной длины, а результат записать в новый файл....

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

Поменять местами слова в предложении
Такая проблема. Нужно сделать программу, в которую вводим предложение размером N, и которая меняет местами слова с заданными номерами A и...

В целочисленной матрице поменять местами столбец с минимальной суммой со столбцом с максимальной суммой
Дана прямоугольная матрица nxm целых чисел (n,m&lt;10 – ввод с клавиатуры, значения элементов массива в диапазоне – вводятся случайным...

Обработка строк. Поменять местами в предложении слова
Поменять местами в предложении слова: первое и последнее, второе и предпоследним и т.д.. Если слов нечетное количество, то среднее слово...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru