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

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

Войти
Регистрация
Восстановить пароль
 
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
#1

нужно удалить из строки наибольшее и наименьшее слово - C++

08.04.2012, 14:44. Просмотров 632. Ответов 3
Метки нет (Все метки)

нужно разделить сроку на слова и вывести строку без этих слов. я делаю так: сначала запоминаем каждое слово в эелементе массива и длину этого слова в свой элемент массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <conio.h>
#include <string.h>
#incluse <stdlib.h>
void main()
{char st[200]="Babak Kirilo Bodnar Ivan Boxonko Nazar Bik Ivan Gavrilyuk Ivan Gzhegockij Roman Gishka";
 char *slovo;
 slovo=strtok(st," ");
 while (slovo!=NULL)
  {slovo=strtok(NULL," ");
  slovo=a[i]; i++;/*zapominaem slovo v elemente massiva*/
  strlen[slovo]=v[s]; s++;} /*dlina*/
далее пытаюсь найти максимальное слово в цикле
C++
1
2
3
4
5
6
7
i=j;
max=1;
for (s=1;s<j;s++)
 {if (v[s]<v[max])
  {v[s]=v[max];}
 }
}printf("max dlina= %d"[max]);
затем с минимальным
C++
1
2
3
4
5
6
min=1;
for (s=1;s<j;s++)
 {if (v[s]>v[min])
  {v[s]=м[min];}
 }
}printf("min dlina= %d"[min]);
теперь как-то нужно вывести строку без наибольшего и наименьшего слова, думаю, примерно так
C++
1
2
3
4
for (i=1;i<max;i++)
{printf("%d ",a[i]);}
for (i=max;i<j;i++)
{printf("%d ",a[i]);
то есть мы выводим сначала кусок до максимального слова, потом после максимального.
но вот как сделать, чтобы выводло и без максимального и без минимального? и какой тип должен быть у массива а? и все ли я правильно делаю? помогите сделать единый код программы!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2012, 14:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нужно удалить из строки наибольшее и наименьшее слово (C++):

Дана матрица NxM, найти наибольшее значение 2 строки и наименьшее 2 столбца - C++
2. Дана матрица NxM, найти наибольшее значение 2 строки и наименьшее 2 столбца.

Массив: Удалить строку, в котором есть слово, имеющее наибольшее количество разных букв. - C++
Задание: дан двумерный массив строк, удалить рядок в котором есть слово которое имеет наибольшее количество разных букв. по порядку. ...

Удалить слово из строки - C++
Можете помочь написать программу на С++ с функцией и указателями чтобы удалить слово small из строки This is a small string. Чтобы...

Удалить слово из строки - C++
В строке найти и вывести на экран все слова максимальной длины, и удалить за ними следующее слово. Как удалить? Найти и вывести на экран...

Удалить слово из строки - C++
С клавиатуры ввести символьную строку. Проверить, совпадает второе слово этой строки с его последним словом. Если да, то исключить из...

Удалить слово из строки - C++
Подскажите как вообще в принципе удалить слово из строки. Например мне нужно удалить последнее слово. Я посимвольно просматриваю строку,...

3
stanis-morozov
15 / 15 / 1
Регистрация: 18.03.2012
Сообщений: 91
08.04.2012, 15:22 #2
Выложите, пожалуйста, ведь код, а то я у вас не вижу ни объявления массивов a[] и v[], ни откуда вы берете переменную j и например, вот эта строка
C++
1
i=j;
делает непонятно что, т.к. операции с j у вас в коде не отображены.

Добавлено через 3 минуты
И вообще странный у вас какой-то код, давайте я вам лучше новый напишу?
1
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
08.04.2012, 15:34  [ТС] #3
переменной j я пытаюсь запомнить индекс последнего элемента массива! если по тому же принципу, напишите!
0
stanis-morozov
15 / 15 / 1
Регистрация: 18.03.2012
Сообщений: 91
08.04.2012, 15:42 #4
Да, принцип тот же. И последний вопрос: минимальная строка это какая: минимальная в лексикографическом порядке или минимальная по длине? Судя по вашему коду - минимальная по длине, так?

Добавлено через 5 минут
Если минимальная по длине, то код вот такой будет:
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
#include <stdio.h>
#include <string.h>
 
int main()
{
    char st[] = "Babak Kirilo Bodnar Ivan Boxonko Nazar Bik Ivan Gavrilyuk Ivan Gzhegockij Roman Gishka";
    char *sl;
    char words[100][100];
    int len[100];
    int i = 0;
    sl = strtok(st, " ");
    while (sl)
    {
        strcpy(words[i], sl);
        len[i] = strlen(sl);
        i++;
        sl = strtok(NULL, " ");
    }
    int mn = 0, mx = 0;
    for (int j = 0; j < i; j++)
    {
        if (len[j] < len[mn])
        {
            mn = j;
        }
        if (len[j] > len[mx])
        {
            mx = j;
        }
    }
    for (int j = 0; j < i; j++)
    {
        if (j != mn && j != mx)
        {
            printf("%s ", words[j]);
        }
    }
    return 0;
}
Если все-таки в лексикографическом порядке, то скажите - я там чуть-чуть переделаю.
1
08.04.2012, 15:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2012, 15:42
Привет! Вот еще темы с ответами:

Удалить слово из строки - C++
Нужно написать функцию, которая будет удалять слово из строки, которое начинаеться на указаную букву. Заранее спасибо.

Как удалить слово из строки - C++
в строке text есть набор слов в строке word слово которое нужно удалить как удалить ? #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Удалить определенное слово из строки - C++
Я недавно начал изучать язык програмирования. Мне задали задания удалить из строки все слова больше за 5 символов. Заранее всем спасибо.

Удалить каждое четное слово из строки - C++
Тема: строки в c++ Задание: Удалить каждое четное слово из строки.


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

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

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