Issues with Char Array - SMS.print()

I’m a french student, trying to make an automatic SMS sender when i have mail in my mailbox.
I use a “Shield GSM GPRS Arduino 2(https://www.gotronic.fr/art-shield-gsm-gprs-2-arduino-23601.htm)” and a “Motion Sensor Grove PIR (Détecteur de mouvement Grove 101020020 Seeed Studio - Capteurs de distance et mvt | GO TRONIC)” to make it.

I have issues with char arrays, i don’t really understand how does it work. Could you help me with that ?

Thanks for your help ! Bastien.

// Import Library
#include <GSM.h>

// PIN CODE
#define PINNUMBER "0000"
#define PIR_MOTION_SENSOR 4 // moving sensor uses pin 4 

// Library init
GSM gsmAccess(true);    
GSMScanner scannerNetworks;
GSMModem modemTest;
GSM_SMS sms;
void setup()
{
  // Serial Init
  Serial.begin(9600);
  Serial.println("GSM networks scanner");
  scannerNetworks.begin();
  if (!gsmAccess.begin(PINNUMBER) == GSM_READY) { // test carte sim
    while (1);
  }
  Serial.println("SIM OK");
}
void loop()
{
  // numero de tel
  char remoteNumber[20] = "0606060606"; // fake number for confidentiality 
  Serial.println(remoteNumber);
  // Selection du message
  long randNumber;
  randNumber = random(1, 4); // select a random number
  switch (randNumber)
  {
    case 1:
      Serial.println("Le facteur a mis une lettre dans votre boîte aux lettres"); // Selecting a random message to send. 
      char txtMsg[200] = "Le facteur a mis une lettre dans votre boîte aux lettres";
      break;
    case 2:
      Serial.println("Le facteur est passé");
      char txtMsg[200] = "Le facteur est passé";
      break;
    case 3:
      Serial.println("Vous avez du nouveau dans votre boîte aux lettres");
      char txtMsg[200] = "Vous avez du nouveau dans votre boîte aux lettres";
      break;
    case 4:
      ("Vous avez du courrier");
      char txtMsg[200] = "Vous avez du courier";
      break;
  }
}
Serial.println("SENDING");
Serial.println();
Serial.println("Message:");
Serial.println(txtMsg);
if (digitalRead(PIR_MOTION_SENSOR) == HIGH) {
  sms.beginSMS(remoteNumber); // send SMS if the sensor is at logical TRUE 
  sms.print(txtMsg);
  sms.endSMS();
  Serial.println("SENT !");
}
}

I have issues with char arrays

I have issues with people saying "I have issues", without describing what those issues are.

try something like this… using an array of pointers to char arrays:

// Import Library
#include <GSM.h>

// PIN CODE
#define PINNUMBER "0000"
#define PIR_MOTION_SENSOR 4 // moving sensor uses pin 4 

const char* const txtMsg[] = {
  "Le facteur a mis une lettre dans votre boîte aux lettres",
  "Le facteur est passé",
  "Vous avez du nouveau dans votre boîte aux lettres",
  "Vous avez du courier"
};


// Library init
GSM gsmAccess(true);
GSMScanner scannerNetworks;
GSMModem modemTest;
GSM_SMS sms;
void setup()
{
  // Serial Init
  Serial.begin(9600);
  Serial.println("GSM networks scanner");
  scannerNetworks.begin();
  if (!gsmAccess.begin(PINNUMBER) == GSM_READY) { // test carte sim
    while (1);
  }
  Serial.println("SIM OK");
}
void loop()
{
  // numero de tel
  char remoteNumber[20] = "0606060606"; // fake number for confidentiality
  Serial.println(remoteNumber);
  // Selection du message
  long randNumber;
  randNumber = random(1, 5); // select a random number

  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg[randNumber]);
  if (digitalRead(PIR_MOTION_SENSOR) == HIGH) {
    sms.beginSMS(remoteNumber); // send SMS if the sensor is at logical TRUE
    sms.print(txtMsg[randNumber]);
    sms.endSMS();
    Serial.println("SENT !");
  }
  delay(10000);
}

Hi BulldogLowell Thanks for your help, my program works well.
Have nice day!