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

Поиск в string числа типа double

15.12.2021, 15:45. Показов 658. Ответов 6

Студворк — интернет-сервис помощи студентам
Добрый день, пишу программу в которой вводимые данные нужны для вычисления значения с помощью обратной польской нотациии.Но это не суть. Нужно, чтоб программа проверяла правильность вводимых значений. Допустимые операции +, -, /, *. Числа могут быть типа double. Проблема в этом и заключаетсяю Подскажите, пожалуйста, в чем может быть проблема.

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
68
69
70
71
72
73
74
75
76
77
78
79
#include<iostream>
 
using namespace std;
 
bool onpIsRight(string);
bool isDigit(string);
bool isDouble(string)
 
int main() {
    
    string onp;
 
    do{
    getline(cin, onp);
    onpIsRight(onp);
    }while(!onpIsRight(onp));
    
    cout << onp;
    
    return 1;
}
 
bool isDigit(string onp){
  //  for(int i=0; i < onp.length() ; i++){
     //   if(onp[i] >= '0' && onp[i] <= '9'){
    if(onp >= '0' && onp <= '9'){
            return true;
    }
      //  }
        
 // }
 else
   { return false;}
    
}
 
bool isDouble(string onp){
    for(int i=0; i < onp.length() ; i++){
       do{
          isDigit(onp[i]); //поиск цифры, пока попадем на не цифру
       }while(!isDigit(onp[i]));
       
       if(onp[i] == '.'){ // если не цифра это точка то идет поиск дальше цифр
           int j=i+1;
           for(j; j < onp.length()-i; j++){
               do{
                isDigit(onp[j]); //поиск цифры, пока попадем на не цифру
              }while(!isDigit(onp[j]));
              
               if(onp[j] == ' '){ //если не цифра это пробел то мы нашли число типа double
                   return true;
               }
           }
           
           
       }
       return false;
       
    
    }
    return false;
}
 
bool onpIsRight(string onp){
    for(int i=0; i < onp.length() ; i++){
        if((onp[i] >= '!' && onp[i] < '*') || onp[i] == ','  || 
        (onp[i] >= ':' && onp[i] <= '~' )){ 
            return false;
            break;
        }
        
        
        
    }
    
    return isDouble(onp);
    
    return true;
}
P.S: если у кого-то есть код для вычисления результата вводимых данных обратной польской нотацией, то буду рада
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.12.2021, 15:45
Ответы с готовыми решениями:

Запись информации из вектора типа string в вектор типа double
Как записать только числа , которые хранятся в векторе типа стринг, в вектор типа дабл, в векторе типа стринг есть как буквы так и числа ,...

Ошибки преобразования числа типа Double в String
Доброго времени суток, форумчане. У меня серьезная проблема с преобразованием , взгляните: begin begin var i: Double; ...

Дан массив типа Object. Состоящий из 15 элементов, 5 из них типа Integer, 5 типа String и 5 типа Double
Разделить массив типа Object на 3 массива по типам данных. Числовые массивы отсортировать в порядке убывания. ...

6
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
15.12.2021, 15:49
Есть стандартная isdigit().
C++
1
2
3
4
5
bool isDouble(string onp)
{
    int i = 0;
    while(isdigit(onp[i])) ++i;
    if(onp[i] == '.')
0
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 15
15.12.2021, 20:41  [ТС]
nmcf, нельзя пользоваться другими библиотеками, это домашнее задание
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12942 / 6809 / 1821
Регистрация: 18.10.2014
Сообщений: 17,234
15.12.2021, 20:43
Цитата Сообщение от heplme Посмотреть сообщение
Проблема в этом и заключаетсяю Подскажите, пожалуйста, в чем может быть проблема.
Какая "проблема"? Где в вашем вопросе описание проблемы? О чем ваш вопрос воообще?
0
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 15
15.12.2021, 20:43  [ТС]
TheCalligrapher, выдает миллиард ошибок
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12942 / 6809 / 1821
Регистрация: 18.10.2014
Сообщений: 17,234
15.12.2021, 20:44
Цитата Сообщение от heplme Посмотреть сообщение
выдает миллиард ошибок
Каких ошибок? Компиляции? Выполнения? Где описание всего этого в вашем вопросе?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
15.12.2021, 21:50
Цитата Сообщение от heplme Посмотреть сообщение
нельзя пользоваться другими библиотеками
Используй свою. Суть от этого не меняется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2021, 21:50
Помогаю со студенческими работами здесь

Как сгенерировать случайное число типа я double имея на входе 2 числа типа double - минимальное и максимальное
Например: public class ExtendedRandom : Random { public ExtendedRandom() : base() { ...

Функция, которая принимает аргумент типа String и возвращает результат типа Double
Написать функцию, которая принимает аргумент типа String, и возвращает результат типа Double, который содержит числовой эквивалент значения...

Сравнение массива типа string с числом типа double
Добрый день! Проблема заключается в том,что нужно найти индекс максимального размера галактики. Само число хранится в двумерном...

Перевод массива типа double в string
Всем привет. Есть программулина. При нажатии кнопки один я создаю массив типа double и записываю его в txt файл При нажатии второй...

Можно ли из числа типа double получить 2 числа типа int?
Если можно, то напишите пожайлуста название функции или способ.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru