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

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

Войти
Регистрация
Восстановить пароль
 
Antoha1
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 16
#1

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

12.07.2012, 14:21. Просмотров 622. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2012, 14:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из арабских чисел в римские (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrCold
855 / 753 / 71
Регистрация: 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
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.07.2012, 15:15 #3
Цитата Сообщение от Antoha1 Посмотреть сообщение
Как можно заменить устаревший sprintf?
В вашем примере достаточно std::to_string
0
Antoha1
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 16
12.07.2012, 15:21  [ТС] #4
Цитата Сообщение от MrCold Посмотреть сообщение
Добавлено через 52 секунды
sprintf хоть старый, но рулит .
Спасибо! Все работает!

ostr << iValue;

<< что делает в этом примере? Пишу для windows forms
0
MrCold
855 / 753 / 71
Регистрация: 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 );
http://www.cyberforum.ru/redirector....UzRHZzLjgwJTI5
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2012, 15:43
Привет! Вот еще темы с ответами:

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

Перевод арабских цифр в римские с++ - C++
Подскажите как перевести арабские цифры в римские... Например 12345 -&gt; I II III IV V Заранее спасибо

Составить программу для перевода арабских чисел в римские и для зворотньох операции. Например 255 = ССЛВ = СТО + СТО + Пятьдесят + Пять - C++
Составить программу для перевода арабских чисел в римские и для зворотньох операции. Например 255 = ССЛВ = СТО + СТО + Пятьдесят + Пять ...

Рекурсивно определить количество арабских цифр в строке - C++
Описать рекурсивную подпрограмму, определяющую количество арабских цифр в данной строке.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.07.2012, 15:43
Ответ Создать тему
Опции темы

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