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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Книги C++ http://www.cyberforum.ru/cpp-beginners/thread1194254.html
http://www.ozon.ru/context/detail/id/5531965/ http://www.ozon.ru/context/detail/id/7979735/ Если кто-то знает, то скажите какая из этих лучше подойдет для обучения ? Или предложите свой вариант. Буду благодарен
C++ Написать шалонный класс «Квадратная матрица» Класс «Квадратная матрица». Методы: вычисление суммы отрицательных элементов каждого столбца и запись его в массив, возведение матрицы в квадрат, вычисление следа матрицы, сравнение матриц на равенство, вывод элементов матрицы на дисплей. http://www.cyberforum.ru/cpp-beginners/thread1194246.html
Не компилируется C++
Не могу понять в чем ошибка, помогите разобраться #include <stdio.h> #include <stdlib.h> void zapolnit() { FILE* f = fopen("file.dat", "wb"); printf("Kolichestvo zifr: ");
C++ Как удалить строку в ТХТ файле?
Если не секрет, как удалить строку в ТХТ файле через С++? к примеру я напишу 4ре слова и надо будет удалить например первое как это сделать?
C++ Очередь. Программа удаляет четные числа, нужно удалять нечетные http://www.cyberforum.ru/cpp-beginners/thread1194219.html
Программа удаляет все парные числа, как сделать чтобы удаляла все непарные? Вот код #include <iostream> using namespace std; struct List { int x; List *Next; }*Head, *Tail; void Add(int x, List **MyList)
C++ Деление двоичных чисел в строковом виде Добрый день! Никак не могу додумать реализацию деления двоичных чисел (целых и дробных), представленных в строковом виде (std::basic_string). Помогите, люди добрые =) Если нужно будет сравнить два двоичных числа, то: if ((bin) A < (bin) B) { //(реализованы и >, ==, !=, <<, >>) } Пример: string bDiv(string strSourceNum, string strDivNum) { int iSrcLen = strSourceNum.length(); ... подробнее

Показать сообщение отдельно
schdub
2935 / 1279 / 237
Регистрация: 19.01.2009
Сообщений: 3,341
Завершенные тесты: 1
31.05.2014, 03:37     Число с плавающей запятой в строках
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 ")
    ;
}
 
Текущее время: 23:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru