setting a char array depending on button

Hello all,
I am trying to programme a controller that sends an array of strings to the PC. This array depends on a bank selected. I have char array 1 ={1,2,3,4} and char array 2 = {49,113,97}. and bank 1 selects array 1, bank 2 array 2. If I select bank 1, I get array 1, if I get up to bank 2 I get a concatated array {1,2,3,4,49,113,97} although I did not tell the programme to do so. Here is the code:
I have an lcd display to show the array!

#include <LiquidCrystal_I2C.h>

#include "Arduino.h"
#include "Wire.h"
LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
const int pin_su = 1;  // pin song up
const int pin_sd = 2;  // pin song down
int bank = 0;
int prog = 0;
const char ultra[] = {1,2,3,4};//??????????????????????????
const char remeny[] = {49,113,97}; // Intro: "1"; mittler: "q"; türk. terror "a"
String song;
int lol = 0;
int dly = 1000;
void setup()
{
 lcd.init();                      // initialize the lcd 
 lcd.clear();
  
  pinMode(pin_su, INPUT_PULLUP);
  pinMode(pin_sd, INPUT_PULLUP);
}


void loop() {
    if (digitalRead(pin_su) == LOW) // bank/song rauf
        {
    bank++;
    lol = 1;
//    song = "";
    lcd.clear();
lcd.print("bank hoch"); 
        delay(dly);
        }
    if (digitalRead(pin_sd) == LOW) // bank/song runter
        {
        bank--;
        lol=1;
//        song="";
        lcd.clear();
lcd.print("bank runter"); 
        delay(dly);
        }             
  if (bank>1)
    {
    bank=0;
    }
  if (bank<0)
    {
    bank=1;
    }
     if (lol==1)
    {
      lol=0;
      if (bank == 0)
      {
        song = ultra;
        lcd.clear();
lcd.print(song);
      }
      if (bank == 1)
      {
        song = remeny;
      lcd.clear();
lcd.print(song); 
      }
      }
    }
const char ultra[] = {1,2,3,4};//??????????????????????????
const char remeny[] = {49,113,97};

Those values don't look like chars. The correct type is byte, not char.

You code looks like it was typed by a drunken monkey. Get the monkey into treatment, put EVERY { on a line BY ITSELF, put EVERY } on a line BY ITSELF, and use Tools +Auto Format, to properly indent your code. Post the readable code IN CODE TAGS. It is obvious that you couldn't be bothered to read the stickies at the top of the forum. Do that NOW.

String song;

There is no excuse for using Strings on most Arduinos. If you got the super secret 129 terabytes of SRAM mode, fine, Otherwise, learn to use c strings (NULL terminated arrays of chars).

        song = ultra;

ultra is NOT a string. You should NEVER assign a char array to a String, unless the char array is NULL terminated. Yours is not.

When your array isn't a string, there is NO telling what the assignment operator will do.

const char ultra = {1,2,3,4};//???
const char remeny = {49,113,97};

Those values don’t look like chars. The correct type is byte, not char.

They’re all less than 127 - I don’t see the problem

const char remeny[] = {49,113,97}; // Intro: "1"; mittler: "q"; türk. terror "a"

So much easier to read as const char remeny[] = {'1', 'q', 'a'};

They’re all less than 127 - I don’t see the problem

OP is storing them in a String, so he/she certainly expects them to be chars.

Using byte would make it clear(er) that storing them in a String is not going to prove useful.

IMHO.