Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
1

Удалить элемент строки

21.10.2010, 15:12. Показов 3574. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу функция переводящюю пример в обратную польскую запись, и вместо стека использую строку. Подкажите как удалить последний элемент из строки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2010, 15:12
Ответы с готовыми решениями:

Найти сумму элементов каждой строки матрицы и удалить строки, содержащую максимальный элемент
Дана матрица А. Ввести элементы массива с помощью генератора случайных чисел в интервале . Вывести ...

Как удалить элемент из строки?
В с++ как удалить элемент из строки типа string text; При чем мне нужно удалить все символы,...

Как удалить последний элемент строки
Подскажите, как удалить последний элемент строки?

Как удалить первый элемент строки
есть строка: "Hello world", как удалить первую букву? Юзаю erase, но чего-то выводится только...

4
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
21.10.2010, 16:35 2
Последний элемент - это всмысле последнюю букву?
0
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
21.10.2010, 16:50  [ТС] 3
Sasha, Да, есть строка в которой есть значения " +*", мне нужно удалить последний симпол чтоб осталось " +".
0
Эксперт С++
3953 / 1808 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
21.10.2010, 16:57 4
Цитата Сообщение от HollywooD-new Посмотреть сообщение
Подкажите как удалить последний элемент из строки
Необходимо воспользоваться методом Delete:
C++
1
2
3
String Text = "Hello World1";
Text.Delete(Text.Length(),1);
ShowMessage(Text);
1
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
21.10.2010, 18:40  [ТС] 5
помогите разобратся, когда запускаю программу с примером 2*2+3. программа выдает ошибку в dsstring.h ( ThrowIfOutOfRange(idx); // Should Range-checking be optional to avoid overhead ??)
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
void __fastcall TForm1::ZPZ()
{
int priority = 0, priorityStek = 0, k;
String Stek = NULL;
 
for (int i=1; i<= text_input.Length(); i++)
        {
        if(isdigit(text_input[i]))
                {
                Edit1->Text = Edit1->Text + text_input[i];
        }else
        {
        switch (text_input[i])
                {
                case '*' : priority = 3; break;
                case '/' : priority = 3; break;
                case '+' : priority = 2; break;
                case '-' : priority = 2; break;
                case '(' : priority = 1; break;
                }
        if (Stek == NULL)
                {Stek = text_input[i];
                priorityStek = priority;}
        if (priority > priorityStek)
                {Stek = Stek + text_input[i];
                priorityStek = priority;
        }else
        {
        do
        {
        Edit1->Text = Edit1->Text + Stek[Stek.Length()];
        Stek.Delete(Stek.Length(),1);
        switch (Stek[Stek.Length()])
                {
                case '*' : priorityStek = 3; break;
                case '/' : priorityStek = 3; break;
                case '+' : priorityStek = 2; break;
                case '-' : priorityStek = 2; break;
                case '(' : priorityStek = 1; break;
                }
        }    while(priority <= priorityStek);
        }
        }
 }
}
пытаюсь реализовать этот алгоритм
Рассматриваем поочередно каждый символ:
1. Если этот символ - число (или переменная), то просто помещаем его в выходную строку.
2. Если символ - знак операции (+, -, *, / ), то проверяем приоритет данной операции. Операции умножения и деления имеют наивысший приоритет (допустим он равен 3). Операции сложения и вычитания имеют меньший приоритет (равен 2). Наименьший приоритет (равен 1) имеет открывающая скобка.
Получив один из этих символов, мы должны проверить стек:

а) Если стек все еще пуст, или находящиеся в нем символы (а находится в нем могут только знаки операций и открывающая скобка) имеют меньший приоритет, чем приоритет текущего символа, то помещаем текущий символ в стек.
б) Если символ, находящийся на вершине стека имеет приоритет, больший или равный приоритету текущего символа, то извлекаем символы из стека в выходную строку до тех пор, пока выполняется это условие; затем переходим к пункту а).

3. Если текущий символ - открывающая скобка, то помещаем ее в стек.
4. Если текущий символ - закрывающая скобка, то извлекаем символы из стека в выходную строку до тех пор, пока не встретим в стеке открывающую скобку (т.е. символ с приоритетом, равным 1), которую следует просто уничтожить. Закрывающая скобка также уничтожается.

Если вся входная строка разобрана, а в стеке еще остаются знаки операций, извлекаем их из стека в выходную строку.
0
21.10.2010, 18:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2010, 18:40
Помогаю со студенческими работами здесь

удалить из строки каждый третий элемент
удалить из строки каждий третий елемент!!!!!!! вот текст програми, но тут удаляет только оди н...

Удалить строку, в которой находится максимальный элемент. Если такой элемент встречается несколько раз, то удалить все с
Дан массив В (5*5). Элементы массива ввести случайным образом. Удалить строку, в которой находится...

Удалить строки матрицы содержащие минимальный элемент
Что-то не могу разобраться, где допустил ошибку в коде. #include &lt;iostream&gt; using namespace...

Assembler(удалить каждый пятый элемент строки)
Всем доброго времени суток... Дело к сессии и вот осталась одна лаба все никак не могу понять как...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru