Mettre des mots dans un tableau en C

Résolu/Fermé
jutabary Messages postés 15 Date d'inscription lundi 23 juin 2008 Statut Membre Dernière intervention 1 octobre 2011 - 22 juin 2011 à 09:43
jutabary Messages postés 15 Date d'inscription lundi 23 juin 2008 Statut Membre Dernière intervention 1 octobre 2011 - 22 juin 2011 à 23:09
Bonjour,

J'aimerais mettre un texte dans un tableau (en C) mot par mot pour ensuite pouvoir les trier. Mais je ne sais pas du tout comment faire, pourriez-vous me proposer une solution.

je pensais qu'il fallait faire un programme de ce type mais je ne suis absolument pas sûre.

char c;
char i;
char t[1000000];
for (i=0; i=EOF ;i++)
{
while (c!=' ')
t[i]= mot;
}

je vous remercie d'avance.


A voir également:

2 réponses

Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
22 juin 2011 à 14:16
Bonjour,
la variable "t" est un simple tableau, lorsque vous faites t[i] vous vous placez sur une case du tableau et cette case fait la taille d'un char, donc vous ne pouvez y mettre qu'une lettre pas plus.
Il vous faut par exemple un double tableau pour y mettre des mots :
char tableau[100][20];
là il y a de la place pour 100 mots qui ont ont au maximum une longueur de 20 char (en prenant en compte le caractère null de fin de chaîne)
Exemple sans aucune vérification de dépassement (il faudrait prendre en compte qu'il peut y avoir plus de 100 mots et qu'un mot puisse faire plus de 19 char) :
#include <stdio.h>

int main(void)
{
    int i,j,c;
    char tableau[100][20];
    const char *buffer="test pour mettre des mots dans un tableau";
    for(c=j=i=0;buffer[i];i++)
      {
        if(buffer[i]!=' '){
            tableau[j][c]=buffer[i];
            c++;
        }
        else{
            tableau[j][c]='\0';
            c=0; j++;
        }
      }
    for(i=0;i<=j;i++)
        printf("%s\n",tableau[i]);
    return 0;
}
2
jutabary Messages postés 15 Date d'inscription lundi 23 juin 2008 Statut Membre Dernière intervention 1 octobre 2011
22 juin 2011 à 23:09
je vous remercie :)
0