не понятна строчка в коде
Нашел такой код:
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#define ROMAN_NUMS_SIZE 7
using namespace std;
char roman_nums[ROMAN_NUMS_SIZE] = { 'I','V','X','L', 'C', 'D', 'M' };
int arabic_vals[ROMAN_NUMS_SIZE] = { 1, 5, 10, 50, 100, 500, 1000 };
int main()
{
int i = 0;
int num = 0;
char romnum[BUFSIZ];
char* rnptr = romnum;
cout << "please input digit: ";
cin >> num;
if (num == 0)
{
cout << "there is no such number in Roman notation. " << endl;
return 0;
}
for (i = ROMAN_NUMS_SIZE - 1; i >= 0; --i)
{
while (num >= arabic_vals[i])
{
if ((num >= arabic_vals[i] * 4) && (i != ROMAN_NUMS_SIZE))
{
num -= arabic_vals[i] * 4;
*rnptr++ = roman_nums[i];
*rnptr++ = roman_nums[i + 1];
}
else
{
num -= arabic_vals[i];
*rnptr++ = roman_nums[i];
}
}
}
*rnptr = '\0';
cout << "ROMAN: " << romnum;
}
но мне не понятна одна строчка:
char romnum[BUFSIZ];
можете пожалуйста подсказать, что она означает, и как её можно заменить?
Ответы (1 шт):
Автор решения: psyhobanana
→ Ссылка
Это массив символов, туда записывается ваш результат —
число в римской системе отчисления, а заполняете вы его через указатель rnptr.
[BUFSIZ] - Это размер массива