Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
VanHalen
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 5
1

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

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

Задание - из строки выделить подстроку, задающую число с плавающей точкой.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2014, 02:09
Ответы с готовыми решениями:

Не выводит число с плавающей запятой
Добрый день! Испробовал и дабл и флоат, бесполезно, должно по идее выдать 0.5,...

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

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

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

Числа с плавающей запятой
есть программа которая подсчитывает сумму чисел, введенных с командной строки. ...

2
schdub
Эксперт С++
3038 / 1380 / 421
Регистрация: 19.01.2009
Сообщений: 3,685
Завершенные тесты: 1
31.05.2014, 03:37 2
Лучший ответ Сообщение было отмечено VanHalen как решение

Решение

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 ")
    ;
}
0
Psilon
Master of Orion
Эксперт .NET
6000 / 4850 / 902
Регистрация: 10.07.2011
Сообщений: 14,460
Записей в блоге: 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];
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2014, 03:59

Запись типов с плавающей запятой
интересует правильность записи типов с плавающей запятой. пример float k...

Сокращение числа с плавающей запятой
Ломал-ломал себе голову, ни как не смог понять как выполнить такую задачу...

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


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

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

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