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

Моя реализация функции перевода STRING в DOUBLE - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки. Вывести на экран слово максимальной длинны http://www.cyberforum.ru/cpp-beginners/thread741713.html
Товарищи форумчане! Помогите пожалуйста юному программисту с задачкой. Задача: Ввести с клавиатуры строку из произвольного кол-ва слов, разделенных пробелами. Вывести на экран слово максимальной длинны. Написать функцию поиска слова максимальной и вывода его на экран. Заранее Спасибо за помощь.
C++ Как продифференцировать (найти производную) для функции y=ctg(3x)*arccoc(3x^2) http://www.cyberforum.ru/cpp-beginners/thread741683.html
2. Составить программу для определения количества трехзначных чисел, кратных заданному числу C++
Помогите решить, пожалуйста Составить программу для определения количества трехзначных чисел, кратных заданному числу.
C++ Сумма (правильно ли написана программа?)
Подскажите, правель но ли написана программа? #include <iostream.h> using namespace std; vad main() { setlocale (LC_ALL, “Russian”); int n=0; float x, y=0; cout <<" Введите n \n";
C++ Сортировка строки http://www.cyberforum.ru/cpp-beginners/thread741648.html
Добрый день уважаемые читатели. У меня проблема с такой задачей: нужно ввести строчку и получить новую строчку, отсортированную по алфавиту, а также еще одну строчку отсортированную по длине слова. Помогите реализовать. Буду благодарен. Можно использовать <string.h> (strcpy,strlengh и тд.) Я пробовал, но ничего не получалось.
C++ Принципы и практика использования C++ До этого изучал C# не слишком глубоко но ООП освоил.(С некоторыми оговорками, потому как серьёзные проекты с применением этой технологии мною не писались, лишь игрушечные программки исключительно для демонстрации синтаксических основ. Но с точки зрения теории всё было понятно...) В институте давали Си (хоть и из головы напрочь выпали такие вещи как управление памятью, работа со стеком итп).... подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
22.12.2012, 14:45     Моя реализация функции перевода STRING в DOUBLE

Не по теме:

Цитата Сообщение от soon Посмотреть сообщение
Согласен
C++
1
2
3
#include <iostream>
#include <string>
using namespace std; double str_to_double(string a); int main() { string s = "7.86456456"; cout << str_to_double(s); } double str_to_double(string a) { int s = 0; for(int i = 0; i < a.size(); ++i) { if(a[i] == '.') {++s;} if(s > 1 || a[0] == '.') {return 0;} } double num = 0; int tmp; bool anti = false; int dob = 0; for(int i = a.size() - 1; i >= 0 && a[i] != '.'; --i) {++dob;} double l = 1; if(s == 0) {l = 1;} else {for(int i = 0; i < dob; ++i, l /= 10);} for(int i = a.size() - 1; i >= 0; --i, l *= 10) { if(a[i] == '0') {tmp = 0;} else if(i == 0 && a[i] == '-') {anti = true; break;} else if(a[i] >= '0' && a[i] <= '9') {tmp = a[i] - '0';} else if(a[i] == '.') {l /= 10; continue;} else { return 0; } num += (tmp * l); } if(anti == true) {return -num;} else {return num;} }
Ну что вы, по-моему, так ещё более читабельно.
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
# include  <iostream>
#   include <string>
#    define str string
#  define dbl double
# define cnt continue
double f(std::str
  a);int main(){std
   ::str s="7.864"
    "56456";std::cout
    <<f(s);}dbl f(
     std::str a){int s
   =0;for (int i=0;i<a.
   size(); ++i){if(a[i]
  =='.'){++s;}if(s>1||
 a[0]=='.'){return 0;
 }}double nm=0;int t;
  bool anti=false; int
   d=0;for(int i=a.size
    ()-1;i>=0&&a[i]!='.'
     ;--i){++d;}dbl l=
     1;if(s==0){l=1;}else
    {for(int i=0;i<d;++i
   ,l/=10);}for(int i=a
     .size()-1;i>=0;--i,l
      *=10){if(a[i]=='0'){
       t=0;}else if(i==0&&
         a[i]=='-'){anti=true
           ;break;}else if(a[i] 
          >='0'&&a[i]<='9'){t=
        a[i]-'0';}else if(a[
        i]=='.'){l/=10;cnt;}
       else{return 0;}nm+=(
      t*l);}if(anti==true)
{return -nm;}else{return nm;}}



Если серьёзно, то у подобного однострочного стиля главный недостаток: его приходится исправлять, если внезапно надо написать больше одной строки. То же касается необорачивания простых выражений в фигурные скобки.
 
Текущее время: 02:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru