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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Epicone
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 5
#1

Функция для преобразования double в строку символов. - C++

08.01.2011, 20:31. Просмотров 1472. Ответов 9
Метки нет (Все метки)

Написать функцию для преобразования переменной типа double в строку символов с заданной точностью представления ( dtoa( double num, int npos, int nfr ) ) и тестирующую программу к ней.

Помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2011, 20:31     Функция для преобразования double в строку символов.
Посмотрите здесь:
Функция преобразования целого числа в строку C++
C++ функция для преобразования __time64_t в char *
C++ Преобразования char в double
Преобразования const double в string C++
Есть ли какие то стандартные функции преобразования double в string? C++
Почему при преобразования из float в double коверкается число? C++
C++ Неверный результат при преобразования типов данных static_cast<int>(double)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 20:42     Функция для преобразования double в строку символов. #2
похожая задача) но тут цель была выводить поразрядно, функция была для класса денег
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
#include <iostream>
#include <cmath>
#include <string>
#include <algorithm>
#define NUM 2
std::string to_string(double value) 
{
  double tmp=value*pow(10,NUM);//избавляемся от дробной части
  std::string str;
  str+=char(fmod(tmp,10) + '0');
  while(int(tmp/=10)) 
    {
      if(str.length()==NUM)str+='.';
      else if( str.length()>=NUM+3 && !((str.length()-NUM)%4) ) str+=',';
      str+=char(fmod(tmp,10) + '0');
    }
  std::reverse(str.begin(),str.end());
  return str;
}
 
int main()
{
   double d;
   std::cin >> d;
   std::cout << to_string(d);
}
Epicone
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 5
08.01.2011, 21:52  [ТС]     Функция для преобразования double в строку символов. #3
Спасибо)а ничего похожего у на это у вас случайно не имеется?)
Ввести строку. Вывести различные слова вместе с количеством их появления в строке.
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 22:26     Функция для преобразования double в строку символов. #4
C++
1
Ввести строку. Вывести различные слова вместе с количеством их появления в строке.
это еще проще :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
int main()
{
 std::cout << "Введите строку:\n";
 std::string str;
 std::vector<std::string> mass;
 char ch;
 while(std::cin.get(ch) && ch!='\n') 
 {
  std::cin.unget();
  std::cin >> str;
  mass.push_back(str);
 }
 for(int i=0;i<mass.size();i++)
   std::cout << mass[i] << " " << std::count(mass.begin(),mass.end(),mass[i]) << std::endl;
 return 0;
}
Epicone
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 5
09.01.2011, 00:15  [ТС]     Функция для преобразования double в строку символов. #5
Ну просто огромнейшее вам спасибо)Поднакоплю наглости до завтра и спрошу еще парочку задачек)
Еще раз большущее спасибо)
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
09.01.2011, 00:24     Функция для преобразования double в строку символов. #6
Еще раз большущее спасибо)
это делается соответствующей кнопочкой..
Epicone
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 5
09.01.2011, 15:34  [ТС]     Функция для преобразования double в строку символов. #7
Ну чтож как и обещал еще парочка задач)
1.Ввести строку, заменить интервалы между словами на 2 пробела.(тут проблема только с тем как предположим 2 и более пробелов заменить на 2)

2.Написать функцию, которая вставляет в массив элемент с заданным индексом и заданным значением. Лишний элемент должен пропасть.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
09.01.2011, 16:00     Функция для преобразования double в строку символов. #8
Цитата Сообщение от Epicone Посмотреть сообщение
1.Ввести строку, заменить интервалы между словами на 2 пробела.(тут проблема только с тем как предположим 2 и более пробелов заменить на 2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <sstream>
#include <iterator>
 
int main()
{
    std::string str, tmp;
    std::cout << "\n\nInput string -> ";
    getline(std::cin, str);
 
    const std::string del(":;.,");
    for(std::string::iterator it = str.begin(); it != str.end(); ++it)
        if(del.find(*it) != std::string::npos)
            *it = ' ';
 
    std::istringstream ist(str);
    std::cout << "\n\nResult -> ";
    while(ist >> tmp)
        std::cout << tmp << "  ";
 
    return 0;
}
chazey
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 11
09.01.2011, 18:05     Функция для преобразования double в строку символов. #9
А не мог бы ктонибудь если есть время сделать эти проги с scanf printf и тд. Я просто совсем не понимаю с ::
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2011, 22:08     Функция для преобразования double в строку символов.
Еще ссылки по теме:
C++ Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну строку не более 50 символов и выводит на экран позиции вхождени
Функция для поиска символов C++
C++ Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
Создать функцию, которая на вход получает строку символов и один символ, функция печатает те слова строки, в которых встречается этот символ. C++
C++ преобразования символов в числа

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

Или воспользуйтесь поиском по форуму:
chazey
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 11
17.01.2011, 22:08     Функция для преобразования double в строку символов. #10
Цитата Сообщение от vx5 Посмотреть сообщение
C++
1
Ввести строку. Вывести различные слова вместе с количеством их появления в строке.
это еще проще :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
int main()
{
 std::cout << "Введите строку:\n";
 std::string str;
 std::vector<std::string> mass;
 char ch;
 while(std::cin.get(ch) && ch!='\n') 
 {
  std::cin.unget();
  std::cin >> str;
  mass.push_back(str);
 }
 for(int i=0;i<mass.size();i++)
   std::cout << mass[i] << " " << std::count(mass.begin(),mass.end(),mass[i]) << std::endl;
 return 0;
}

Может ктонибудь переписать этот код с использование scanf и других, вобщем как написано в Кернигане и Ричи в начале по крайней мере)
Yandex
Объявления
17.01.2011, 22:08     Функция для преобразования double в строку символов.
Ответ Создать тему
Опции темы

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