bonjour tout le monde voila j'ecris un programme pour extraire les mots d'un texte entré au clavier sauf que j'obtiens pas trop ce que je veux
voici le code: en fichier attaché
code.txt
bonjour tout le monde voila j'ecris un programme pour extraire les mots d'un texte entré au clavier sauf que j'obtiens pas trop ce que je veux
voici le code: en fichier attaché
code.txt
Déjà:
Jamais sur un flux entrant, que sur un flux sortant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part fflush(stdin);
Tu n'as pas de vérification côté débordement de tableau: si je tape un mot trop grand, ton programme va planter...
scanf: Déconseillé, utiliser fgets pour récupérer une ligne. Car scanf récupère un seul mot donc si tu tapes "Bonjour comment", scanf récupère seulement "Bonjour"...
C'est pas la peine de mettre un fflush partout, mettre un '\n' comme tu le fais suffit généralement...
C'est 0 pour un retour normal ou EXIT_SUCCESS, c'est encore mieux (include stdlib.h)
Code : Sélectionner tout - Visualiser dans une fenêtre à part return 1;
Jc
merci j'ai fait les changements mais ça marche toujours pas
Parfait, on peut les voir ces changements ?Envoyé par krachik
"strtok" est fait pour.pour extraire les mots d'un texte
Attention toutefois à faire une sauvegarde de la chaine originale si necessaire car strtok la modifie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 char s[101]; printf("ligne (100 max) : "); fflush(stdout); fgets(s,101,stdin); char *souschaine=strtok(s," "); printf("%s\n",souschaine); while((souschaine=strtok(NULL," "))!=NULL){ printf("%s\n",souschaine); }
Merci pour les reponse j'ai un truc assez simple et ça marche tres fort
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ char texte[120]; char mot[26]; int i; printf("Tapez le texte :"); gets(texte); for (i=0;i<strlen(texte);i++){ scanf("%s",mot); printf(" %s ",mot); } return 0; }
Partager