не понятна строчка в коде

Нашел такой код:

#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] - Это размер массива
→ Ссылка