Programma C. extraction des mots
Résolu
cyrinix
-
cyrinix -
cyrinix -
Bonjours à tous les developpeurs icic présent, J'ai un probleme que je souffre depuis 3jours et j'espere que vous m'aidiez.
Donc voila
J'ai fichier texte qui contient des phrase.le programme doit afficher les mots de chaque ligne.
Moi j'ai essayé mais ca na pas donnée un bon resultat:
voila mon code : Bon là j'ai pas testé sur un fichier mais j'ai testé sur une simple phrase "Hello World".
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void extraireMot(char *mot, size_t *ret);
int main (void)
{
size_t i = 0;
int j;
char mot[] = " hello world ";
for (j = 1; j <= 4; j++)
{
printf ("Mot %d : ", j);
extraireMot (mot, &i);
puts ("");
}
getchar ();
return 0;
}
void extraireMot (char *mot, size_t *ret)
{
size_t i = *ret;
size_t len = strlen (mot);
while (len > i && mot[i]==' ')
{
i++;
}
while (len > i && mot[i]!=' ')
{
putchar (mot[i]);
i++;
}
*ret = i;
}
merci d'avance , je compte sur vous
Donc voila
J'ai fichier texte qui contient des phrase.le programme doit afficher les mots de chaque ligne.
Moi j'ai essayé mais ca na pas donnée un bon resultat:
voila mon code : Bon là j'ai pas testé sur un fichier mais j'ai testé sur une simple phrase "Hello World".
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void extraireMot(char *mot, size_t *ret);
int main (void)
{
size_t i = 0;
int j;
char mot[] = " hello world ";
for (j = 1; j <= 4; j++)
{
printf ("Mot %d : ", j);
extraireMot (mot, &i);
puts ("");
}
getchar ();
return 0;
}
void extraireMot (char *mot, size_t *ret)
{
size_t i = *ret;
size_t len = strlen (mot);
while (len > i && mot[i]==' ')
{
i++;
}
while (len > i && mot[i]!=' ')
{
putchar (mot[i]);
i++;
}
*ret = i;
}
merci d'avance , je compte sur vous
Configuration: Windows Vista Internet Explorer 7.0
5 réponses
-
essaie ceci :
void affiche_mot(char *s){ if (s!=NULL){ int length = strlen(s); int i=0; while(i<length){ if (s[i] != ' ' && s[i] != '\n'){ printf("%c",s[i]); } else printf("\n"); i++; } } }
essaie voir si cela fonctionne, peut-être qu'il y a des bugs mais je pense que ça peut marcher.
tchû -
tu n'as jamais codé en C ? utilise les fonctions fopen, fscanf et fopen dans cet ordre et cherche de l'aide avec google, les forums servent d'aide et non pas à faire les problemes des autres, donc regarde ses trois fonctions que tu connais peut-etre, voici le plan :
il faut ouvrir le fichier -> fopen
il faut le lire -> fscanf
ensuite tu extrait avec la petite fonction que J'AI FAIT
puis enfin tu ferme le fichier -> fclose
si tu as des questions vas-y, je te repondrai
tchû -
ok, il n'y a pas de mal.
suit le plan que je t'ai filé et ça marchera
si tu as des questions viens me les posez, cherche avant bien entendu...
bon courage
tchû -
voici mon main :
#include <stdio.h> #include <stdlib.h> #include <string.h> void affiche_mot(char *s); int main(){ char *s = "salut les gens comment ca va"; affiche_mot(s); return 0; } void affiche_mot(char *s){ if (s!=NULL){ int length = strlen(s); int i=0; while(i<length){ if (s[i] != ' ' && s[i] != '\n'){ printf("%c",s[i]); } else printf("\n"); i++; } } }
et ca marche nickel -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
de rien, mais je ne t'ai pas mis les fopen fscanf ...
donc a toi de joué,
et si tout est ok passe en résolu, tout en haut de ton post, clique sur "probleme resolu"
tchû