#include #include #include #define TXMOT 1023 static int dans_un_mot(char); int main(void) { char le_mot[TXMOT+1]; char le_candidat[TXMOT+1]; char *fin_mot = le_candidat; int longueur = 0; int longueur_max = 0; for (;;) { int c = getchar(); if (c == EOF) break; if (dans_un_mot(c)) { /* Lecture du mot courant */ if (longueur == TXMOT) continue; longueur++; *fin_mot++ = c; continue; } if (longueur == 0) /* Défilement d'une suite de séparateurs */ continue; if (longueur > longueur_max) { /* Mot courant plus long que les précédents */ *fin_mot = '\0'; strcpy(le_mot, le_candidat); longueur_max = longueur; } fin_mot = le_candidat; longueur = 0; } printf("%s", le_mot); return EXIT_SUCCESS; } /* Retourne vrai si le caractère reçu en paramètre est un caractère de mot. */ static int dans_un_mot(char c) { return isalnum(c) || c == '_'; }