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

Из арабских чисел в римские

12.07.2012, 14:21. Просмотров 976. Ответов 4
Метки нет (Все метки)

Функция для перевода из арабских чисел в римские. Как можно заменить устаревший sprintf?

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
string _func_arab_to_roman(int arab){
    string arab_str;
    string res;
    char arr[100];
    int d;
 
    sprintf(arr, "%d", arab);
    arab_str = arr;
 
    int arab_len = arab_str.size();
    for (int i = 0; i < arab_len; i++){
        d = arab_str[arab_len - i - 1] - 48;
        if ((d + 1) % 5 == 0){
            res = copy("IXCM", i, 1) + copy("VXLCDM", i * 2 + (d + 1) / 5 - 1, 1) + res;
        }
        else{
            res = copy("VLD", i, d / 5) + copy("IIIXXXCCCMMM", i * 3, d % 5) + res;
        }
    }
 
    return res;
}
 
string copy(string s, int first, int k){
    string res;
    for (int i = first; i < first + k; i++){
        if (i == s.size()){
            return res;
        }
        res += s[i];
    }
    return res;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2012, 14:21
Ответы с готовыми решениями:

Из арабских чисел в римские Visual C++
Здравствуйте! =) Знаю, что тема заезжена до дыр, но ничего стоящего на с++ я не нашел. В основном...

Преобразование арабских чисел в римские
2. Программа для преобразования числа, введённого арабскими цифрами в римское число, и наоборот.

Перевод арабских чисел в римские
вообщем задание такое: написать код который из простых чисел преобразовал бы в римские, и потом...

Перевод арабских чисел в римские
Всем привет. Не получается решить задачу в С++ Кто может помогите если не сложно;. Для...

4
866 / 764 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
12.07.2012, 15:03 2
Цитата Сообщение от Antoha1 Посмотреть сообщение
Как можно заменить устаревший sprintf?
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
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
int main ()
{
 
    char chararr[12];
 
    int iValue = 36;
 
    sprintf( chararr, "%d", iValue );
     
    cout << chararr << endl;
 
     ostringstream ostr;
 
     ostr << iValue;
 
    strcpy ( chararr, ( ostr.str() ).c_str() );
 
    cout << chararr << endl;
 
    return ( 0 );
}
Добавлено через 52 секунды
sprintf хоть старый, но рулит .
1
2551 / 1316 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.07.2012, 15:15 3
Цитата Сообщение от Antoha1 Посмотреть сообщение
Как можно заменить устаревший sprintf?
В вашем примере достаточно std::to_string
0
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 16
12.07.2012, 15:21  [ТС] 4
Цитата Сообщение от MrCold Посмотреть сообщение
Добавлено через 52 секунды
sprintf хоть старый, но рулит .
Спасибо! Все работает!

ostr << iValue;

<< что делает в этом примере? Пишу для windows forms
0
866 / 764 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
12.07.2012, 15:43 5
Antoha1, для WinForms есть свои функ конвертации
C++
1
2
3
int iVal = 36;
 
  String ^s = Convert::ToString( iVal );
https://www.cyberforum.ru/redi... ZzLjgwJTI5
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2012, 15:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Программа перевода арабских чисел в римские
Написать программу, которая переводит положительное число введено в десятичном виде в римские числа...

Алгоритм преобразования арабских чисел в римские и обратно
Здравствуйте. Только начал изучать С++, как реализовать эту задачу раздельно представляю, а вот...

Перевод чисел из арабских в римские. Пределы int
Есть программа: #include &lt;stdio.h&gt;; #include &lt;conio.h&gt;; int roman(int,int,char); main() { int...

Составить программы для перевода арабских чисел в римские и для обратной операции
Составить программы для перевода арабских чисел в римские и для обратной операции. Например, 255 =...


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

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

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