How to store a word from serial monitor?

I am using a library that prints out the "card number" when it detects a NFC tag with the MFRC522. It doesn't print it out in a normal fashion but uses a custom function to print out the card number, "rfid.showCardID(serNum);". When I hover over the "showCardID" part, it shows that the parameter is "unsigned char * id". I want to capture the output in Serial monitor and store that as a variable to compare. The reason why I am using this particular library and not the newer/common one is because I can set MISO to any pin I want. Before, the MFRC522 would not play nice with being on the same MISO pin as my LCD display. The code I am using is just to test the RFID.
Parts:
Arduino Mega
RFID scanner - Mifare RC522 : Amazon.com: HiLetgo 3pcs RFID Kit - Mifare RC522 RF IC Card Sensor Module + S50 Blank Card + Key Ring for Arduino Raspberry Pi : Electronics
3.5 Inches TFT LCD Touch Screen - 480x320 SPI Serial ILI9488 : Amazon.com: Hosyond 3.5 Inches TFT LCD Touch Screen Shield Display Module 480x320 SPI Serial ILI9488 with Touch Pen Compatible with Arduino R3/Mega2560 Development Board : Electronics
Code:

#include"rfid.h"
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2);
RFID rfid;
#define relayPin 8

uchar serNum[5];

void setup()
{
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  rfid.begin(7, 52, 51, 53, 9, 8);//rfid.begin(IRQ_PIN,SCK_PIN,MOSI_PIN,MISO_PIN,NSS_PIN,RST_PIN)
  delay(100);
  rfid.init();
    pinMode(relayPin, OUTPUT);
    digitalWrite(relayPin,HIGH);
  //Serial.begin(9600);
   lcd.setCursor(0,0);
  lcd.print("    Welcome!    ");
  delay(2000);
  
}
void loop()
{
  uchar status;
  uchar str[MAX_LEN];
  status = rfid.request(PICC_REQIDL, str);
  if (status != MI_OK)
  {
    return;
  }
  
  rfid.showCardType(str);
  status = rfid.anticoll(str);
  
  if (status == MI_OK)
  {
    //Serial.print("The card's number is: ");
    lcd.setCursor(0,0);
    lcd.print(" ID: ");
    memcpy(serNum, str, 5);
    rfid.showCardID(serNum);
    // Check people associated with card ID
    uchar* id = serNum;
    if( id[0]==0x0E && id[1]==0x8F && id[2]==0x8A && id[3]==0x3F ) 
    {
     digitalWrite(relayPin,LOW);
      // Serial.println("Hello Dannel!");
      lcd.setCursor(0,1);
      lcd.print(" Hello Dannel! ");
      delay(2000);
      lcd.clear();
      digitalWrite(relayPin,HIGH);
    } 
    else if(id[0]==0x5A && id[1]==0xE4 && id[2]==0xC9 && id[3]==0x55) 
    {
      digitalWrite(relayPin,LOW);
      //Serial.println("Hello SunFounder");
      lcd.setCursor(0,1);
      lcd.print("Hello SunFounder");
      delay(2000);
      lcd.clear();
      digitalWrite(relayPin,HIGH);
    } 
    else
    {
      //Serial.println("Hello unkown guy!");
       lcd.setCursor(0,1);
      lcd.print("Hello unkown guy");
      delay(2000);
      lcd.clear();
    }
  }
  lcd.setCursor(0,0);
  lcd.print("    Welcome!    ");
   delay(2000);
  rfid.halt(); //command the card into sleep mode 
}

This is not the correct library for that type of LCD screen.

This type of display is notorious for not playing nice with any other SPI devices. The display itself, the SD card reader and the touch sensor chip are all 3.3V devices, so the board also contains logic/signal level shifters to allow it to be used with 5V Arduino. Unfortunately, that part was badly designed and prevents other SPI devices working.

This is not the correct library for that type of LCD screen.

Yeah, it was part of the orginal library that the ino came with

Unfortunately, that part was badly designed and prevents other SPI devices working

That sucks, are most displays around this size have the same issues or do i need to find one with SD and touchscreen capabilities?

AVR UARTs are capable of being master mode SPI ports. Nick Gammon shows how including code to do that.

It's possible to use a standalone AVR chip SPI port to connect to an SPI bus as slave device and use the UART on that to run another SPI bus, in this case to run the LCD.

A mega2560 has 4 UARTs.

I confess to not understanding how voltage leveling to an SPI slave makes the SPI bus incompatible to 5V devices. Does that depend on how you do the leveling? I have 74HC4050 hex buffers for leveling, they have 5V to 3V that's supposed to be clean.

Nick Gammon shows how including code to do that.

Can you link an article/video for that please? I tried looking it up but only found the code for a different mircocontroller

His code is for AVR MCU's. You would wire an AVR like an ATmega328P to the master SPI bus and use the UART on that to run the LCD on that UART-driven SPI bus.

The AVR would be a dedicated LCD controller. A bare 328P costs little.

SPI on AVR tells a lot about all SPI.

Look for; SPI from the USART ... an alternative

The standalone AVR will need minimal wiring.