Détection des éspaces dans un fichier qui contient du texte

Signaler
Messages postés
29
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 juillet 2013
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour à tous,
J'aimerais savoir si c'est possible de détecter un espace dans un fichier texte, si oui avec quelle fonction sachant que je travaille avec du code en C,
Merci d'avance.

8 réponses

Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Tu parcours ton fichier et tu repères le caractère ' '. Si tu t'intéresses à tous types d'espacement (saut de ligne, tabulation, espace, ...), alors tu peux utiliser la fonction "isspace".

Pour ouvrir un fichier, tu as fopen, et fclose pour le refermer. Tu as ensuite plusieurs méthodes pour lire dans un fichier, je te laisse faire les recherches appropriées sous Google.

_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Messages postés
29
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 juillet 2013

Merci CptPingu
Messages postés
29
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 juillet 2013

ReBonjour,

Existe-t-il une fonction pour extraire un contenu se trouvant entre deux pointeurs de type char???

Merci d'avance
Messages postés
29
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 juillet 2013

Ou plutôt supprimer tout, sauf ce qu'il y a entre les deux pointeur.
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
strncpy

Ex:
char* debut char* fin
char* receveur = <malloc d'une taille suffisante>
strncpy(receveur, debut, fin - debut)

Recopiera dans la variable receveur, la chaîne entre debut et fin.

_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Messages postés
29
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 juillet 2013

Merci encore une fois CptPingu :-)
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Ou plutôt supprimer tout, sauf ce qu'il y a entre les deux pointeur.

Tu utilises la même technique, sauf que tu recopies le contraire. C'est à dire:
- Du début de la chaîne au pointeur "debut"
- Du pointeur "fin" à la fin de la chaîne.

Ensuite tu concatènes les deux chaînes obtenues grâce à "strcat".

_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
tu as lu nbytes à l'adresse pmem:

On supprime tous les espaces:
char *c, *d;
c d pmem;
do {
if(*c !' ') *d++ *c;
c++;
} while(--nbytes);

C'est vidangé des espaces.
Te reste qu'à réécrire (d - pmem) octets.

ciao...
BruNews, MVP VC++