[C]Tableau de chaine de caract

Fermé
maxou - 7 déc. 2006 à 16:51
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 7 déc. 2006 à 22:28
Bonjour,
j'ai besoin d une petite aide :
Comment faireun tableau contenant des chaines de caracteres en C ??
Merci
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
7 déc. 2006 à 20:05
Salut,

Voilà 2 exemples

1. Initialisation du tableau lors de la déclaration
#include <stdio.h>
#define NBMOIS 12

int main()
{
  int i;
  char *mois[NBMOIS]={ "janvier",
                       "fevrier",
		       "mars",
		       "avril",
		       "mai",
		       "juin",
		       "juillet",
		       "aout",
		       "septembre",
		       "octobre",
		       "novembre",
		       "decembre"};

  for(i=0;i<NBMOIS;i++)
    printf("%s\n",mois[i]);

  return 0;
}

2. Remplir le tableau à la demande
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define NBMOIS 12
#define LONG_MAX 20

int main()
{
  int i,j,quitter=0;
  char **mois, nom[LONG_MAX];

  mois=malloc(NBMOIS * sizeof(char *));

/* Remplissage du tableau */
  for(i=0;i<NBMOIS && (! quitter);i++)
  {
    printf("Entre le mois numéro %d ( fin pour quitter ) : ",i+1);
    scanf("%s",nom);
    quitter=((strcmp(nom,"fin"))==0);
    
    if(! quitter)
    {
      *(mois+i)=malloc(strlen(nom)+1);
      strcpy(*(mois+i),nom);
      j=i+1;
    }
  }
/* Affichage du tableau */
  printf("\n--- Les mois ---\n\n");
  for(i=0;i<j;i++)
    printf("Mois %d : %s\n",i+1,mois[i]);
  
  return 0;
}
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
7 déc. 2006 à 22:28
Bien, lami20j :-)
0