Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
98 / 97 / 11
Регистрация: 12.09.2016
Сообщений: 194
1

Убрать незначащие нули из строки

14.01.2018, 22:53. Показов 2916. Ответов 7
Метки нет (Все метки)

Добрый день.
Есть строка,формата (x-3)(x-4)(x+3.0000)(x+3.250) (Количество скобок может варьироваться)
Нужно обработать ее так,чтобы на выходе получилось (x-3)(x-4)(x+3)(x+3.25)
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2018, 22:53
Ответы с готовыми решениями:

Убрать незначащие нули из double
Добрый день, как убрать незначащие нули из переменной типа double? Проблема в том, что результатом...

Убрать из строкового выражения незначащие нули
Добрый день.Нужно написать функцию,которая на вход получает строку формата (x-1,000000/7) (скобок...

Как убрать незначащие нули из вещественного числа?
Помогите пожалуйста! Есть число double value == 12 650 320. 250 000 Как убрать 0 после...

Удалить из каждой группы подряд идущих цифр все начальные незначащие нули
Всем доброго дня) я хз как делать эту задачу..помогите плиз..На Borland C for dos.

7
1 / 1 / 1
Регистрация: 20.07.2017
Сообщений: 32
15.01.2018, 05:30 2
Именно для данного примера нужно отработать или же общий алгоритм для всех случаев ? Я так думаю, что если нужен общий, то, учитывая, что это переменная является строкой, то при условии, что один из членов уравнения будет состоять из нулей ( (x-10)(x-505)...), то нули "нужные" тоже улетят к чертям, т.к. со работая, со строковой переменной, насколько мне известно, нельзя опираться или брать отсчет от дробной части ( мне по-крайней мере неизвестно). Если же именно для данного примера, то там нужно будет перебросить все элементы строки в массив и потом прогнать через цикл на поиск элемента 0 по его коду и просто заменить их на пустой символ.
0
98 / 97 / 11
Регистрация: 12.09.2016
Сообщений: 194
15.01.2018, 10:52  [ТС] 3
Z1qqO, Нужно для всех случаев. Я пытался обрабатывать строку с конца так:
Если алгоритм находит закрытую скобку,то он удаляет все 0 которые следуют перед ним,но тогда получается запись (15.05 ) (с пробелами), надо поработать ещё над смещением
0
Эксперт С++
3058 / 1400 / 421
Регистрация: 19.01.2009
Сообщений: 3,771
15.01.2018, 11:08 4
Цитата Сообщение от Gaveyn Посмотреть сообщение
Если алгоритм находит закрытую скобку,то он удаляет все 0 которые следуют перед ним,но тогда получается запись (15.05 ) (с пробелами)
откуда появляется пробел? покажите ваш код.
0
630 / 3150 / 250
Регистрация: 11.08.2016
Сообщений: 2,450
15.01.2018, 15:35 5
ИМХО, надо определять начало числа и конец числа(первая не цифра или не десятичный разделитель). А определив, если в числе есть десятичный разделитель (точка| запятая) удалить в конце все нули, и если разделитель в конце, удалить и его.
0
98 / 97 / 11
Регистрация: 12.09.2016
Сообщений: 194
15.01.2018, 23:38  [ТС] 6
Ivandur, На русском языке это и еду понятно,а как реализовать грамотно на c++?

schdub, Сейчас уже не найду код,но я обрабатывал его с конца,и,если встречается закрытая скобка,то все нули до этого заменял на '\0' . на выходе получались числа с пробелами вместо нулей
0
2228 / 1731 / 865
Регистрация: 21.12.2010
Сообщений: 3,074
Записей в блоге: 11
16.01.2018, 09:14 7
Лучший ответ Сообщение было отмечено Gaveyn как решение

Решение

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
#include <iostream>
#include <string>
 
int main()
{
    std::string str("(x-300)(x-4.5)(x+3.0000)(x+3.250)(x+3.000000000000000000000)");
    for (std::string::size_type id = 0, ib = 0; (id = str.find('.', ib)) != std::string::npos && (ib = str.find(')', id)) != std::string::npos; )
    {
        for (int i = ib - 1; ; --i)
        {
            if (str[i] == '0')
            {
                str.erase(i, 1);
                --ib;
            }
            else if (str[i] == '.')
            {
                str.erase(i, 1);
                --ib;
                --id;
                break;
            }
            else
            {
                break;
            }
        }
    }
    std::cout << str << std::endl;
 
    return 0;
}
1
98 / 97 / 11
Регистрация: 12.09.2016
Сообщений: 194
06.02.2018, 23:50  [ТС] 8
igorrr37, помогите пожалуйста вот тут
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2018, 23:50

Проверить правильность написания чисел в тексте; встретившиеся в начале числа незначащие нули опустить
Привет, возникла такая проблема Цитирую задание : &quot;Проверить правильность написания чисел в...

Удалить незначащие нули
в строке из чисел удалить незначащие нули т.е дана строка 005 000035 0005000 05 нужно получить 5...

Удалить незначащие нули числа
В общем есть label, в нем двоичное число. Нужно вывести в текстбокс это число без &quot;незначащих&quot;...

В двоичной системе счисления не выводить незначащие нули
Здравствуйте помогите пожалуйста, сделать так в программе чтобы в двоичной системе счисления...


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

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

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