Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
VanHalen
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 5
#1

Число с плавающей запятой в строках - C++

31.05.2014, 02:09. Просмотров 273. Ответов 2
Метки нет (Все метки)

Задание - из строки выделить подстроку, задающую число с плавающей точкой.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2014, 02:09     Число с плавающей запятой в строках
Посмотрите здесь:

Класс : Число с плавающей запятой(точкой) - C++
Подскажите,где можно побольше узнать о числах с плавающей запятой,желательно не теоретическую часть,а программную. У меня задания...

Как будет выглядеть заголовок функции, принимающей в качестве входных параметров два целых числа и возвращающей число с плавающей запятой двойной точн - C++
1. int a, int b: f ( double ) 2. double f ( int a, int b ) 3. int f ( double a, int b ) 4. f ( int a, int b, return double ) 5....

Числа с плавающей запятой - C++
есть программа которая подсчитывает сумму чисел, введенных с командной строки. к примеру С:\> test.exe 1 2 3 <ENTER> что бы...

Операция с плавающей запятой - C++
float f=13565.0; float x=0.01; float z=f+x;

запись типов с плавающей запятой - C++
интересует правильность записи типов с плавающей запятой. пример float k = 0.25; // << это верно будет ли верной такая...

Что-то не то с числами с плавающей запятой - C++
Есть код на вычисление реккурентного соотношения, он работает +- нормально. Но проблема в том, что на одном из предтестов...

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

как следить за числом с плавающей запятой? - C++
к примеру у меня есть число,и к нему постоянно прибавляют дроби.У этого числа увеличивается часть с плавающей запятой следовательно.Так вот...

Конвертация чисел с плавающей запятой в HEX - C++
Если несложно, исправьте, пожалуйста, код, чтобы и для дробей работало: #include <iostream> #include <cctype> using namespace...

Счетчик с плавающей запятой (по книге Хортона) - C++
Добрый Всем вечер. Изучаю циклы и по уроку есть пример, который по задумке автора ошибочный. Цитата: Этот цикл должен отобразить значения...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
schdub
2940 / 1284 / 238
Регистрация: 19.01.2009
Сообщений: 3,360
Завершенные тесты: 1
31.05.2014, 03:37     Число с плавающей запятой в строках #2
VanHalen,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <cctype>
 
std::string findFloat(const std::string & s, std::string::size_type pos = 0) {
    std::string::size_type sep = s.find('.', pos);
    if (sep == std::string::npos) return std::string();
    int b, e;
    for (b = sep - 1; b >= 0 && ::isdigit(s[b]); --b);
    ++b;
    for (e = sep + 1; e < s.length() && ::isdigit(s[e]); ++e);
    return s.substr(b, e - b);
}
 
int main() {
    std::cout << findFloat("total amount is 222.2302 pounds.") << " "
              << findFloat("1234.567") << " "
              << findFloat(".1234");
}
Добавлено через 8 минут
для случая, если разделитель встречается перед числом:
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
#include <iostream>
#include <string>
#include <cctype>
 
std::string findFloat(const std::string & s, std::string::size_type pos = 0) {
    std::string::size_type sep = s.find('.', pos);
    for(int b, e;;) {
        sep = s.find('.', pos);
        if (sep == std::string::npos) return std::string();
        for (b = sep - 1; b >= 0 && ::isdigit(s[b]); --b);
        ++b;
        for (e = sep + 1; b < s.length() && ::isdigit(s[e]); ++e);
        if (e - b > 1) return s.substr(b, e - b);
        pos = sep + 1; 
    }
}
 
int main() {
    std::cout << findFloat("total amount is 222.2302 pounds.") << " "
              << findFloat("1234.567") << " "
              << findFloat(".1234") << " "
              << findFloat("pounds. amount. is 222.2302 ")
    ;
}
Psilon
Master of Orion
Эксперт .NET
5851 / 4748 / 628
Регистрация: 10.07.2011
Сообщений: 14,298
Записей в блоге: 5
Завершенные тесты: 4
31.05.2014, 03:59     Число с плавающей запятой в строках #3
VanHalen, как вариант:
C++
1
2
3
4
5
6
7
8
9
10
#include <regex>
 
using namespace std;
 
string findFloat(const string &s) { 
    smatch m;
    regex e("\\d*[\\.,]\\d+");
    regex_search(s, m, e);
    return m[0];
}
Yandex
Объявления
31.05.2014, 03:59     Число с плавающей запятой в строках
Ответ Создать тему
Опции темы

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