Créer et remplir un tableau de chaînes de caractères en C

Bonjour,

Bienvenu sur le forum WayToLearnX :slightly_smiling_face:

Vous avez quelques erreurs à fixer

#include <stdio.h>
#define MAX_STRINGS 10   //nombre max d'étudiants
#define STRING_LENGTH 50 //taille max du chaine de caractère(nom d'étudiant)

int main()
{
	//initialisation du tableau
    char tabc[MAX_STRINGS][STRING_LENGTH];
    int i,n;
    printf("Veuillez renseigner le nombre des étudiants: ");
    scanf("%d",&n);

	//saisir les étudiants
    printf("\nVeuillez renseigner les noms des etudiants:\n");
    for(i=0; i<n; i++){
        printf("Etudiant [%d]: ",i+1);
        getchar();
        scanf("%[^\n]s",tabc[i]);
    }
	
	//Afficher le tableau des étudiants
    printf("\nles etudiants du tableau sont donc les suivants:\n");
    for(i=0; i<n; i++){
        printf("[%d]: %s\n",i+1,tabc[i]);
    }
	
    getchar();
    return 0;
}

Sortie:

Veuillez renseigner le nombre des étudiants: 3

Veuillez renseigner les noms des etudiants:
Etudiant [1]: Alex
Etudiant [2]: Bob
Etudiant [3]: Ali

les etudiants du tableau sont donc les suivants:
[ 1]: Alex
[ 2]: Bob
[ 3]: Ali

La ligne suivante:

char tabc[MAX_STRINGS][STRING_LENGTH];

Ne s’agit pas d’un tableau 2D de string, mais d’un tableau 2D de char qui représente un tableau 1D de string. Pour créer un tableau 2D de string en C, vous devez utiliser : char tab[WIDTH][HEIGHT][MAX_STRING_LENGTH]. Comme ci-dessus, vous avez des erreurs de logique dans votre code, et vous pouvez probablement résoudre ce problème avec un simple tableau de string 1D. (Tableau 2D de char).