Supprimer \n d'une chaîne
Résolu/Fermé
linkcr15
Messages postés
362
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
31 mars 2016
-
15 janv. 2012 à 20:41
Antoine - 15 janv. 2012 à 21:22
Antoine - 15 janv. 2012 à 21:22
A voir également:
- Supprimer \n d'une chaîne
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Chaine tnt gratuite sur mobile - Guide
- Nouvelle chaîne tnt gratuite 2024 - Accueil - TV & Vidéo
- Impossible de supprimer un fichier - Guide
1 réponse
Bonjour,
strtok peut être utiliser. strtok va découper la chaine à chaque saut de ligne et retourner un pointeur sur la chaine. Je m'explique avec un exemple.
pour :
chaine1\nchaine2\nchaine3\n\0
strtok sortira
> chaine1\0
> chaine2\0
> chaine3\0
> \0
> NULL
> NULL, etc.
donc pour :
chaine1\n\0
on aurai :
> chaine1\0
> \0
> NULL, etc.
Code C :
fichier1 = strtok(Chaine, "\n"); /* pour le premier fichier, il faut spécifier le nom de la chaine à analyser. les '\n' présents dans la chaine seront remplacés par des '\0'. */
fichier2 = strtok(NULL, "\n"); /* Pour les fois suivantes, il ne faut pas spécifier la chaine car sinon, le résultat sera toujours fichier1. Il faut spécifier NULL pour les demandes suivantes. Si fichier2 (ou fichier1 d'ailleurs) vaut NULL, c'est que la fin de chaine initiale a été atteinte */
NB : Le second paramètre de strtok doit être entre guillemets et non entre apostrophes. Pour plus d'infos sur strftok : rechercher "man page strtok".
En l'occurence seul le premier appel à strtok est intéressant pour ce cas.
Sinon, il y a la possibilité de faire strchr() pour rechercher le '\n' et de placer '\0' à sa place. Ce qui revient à coder un version simplifiée de strtok.
strtok est plus simple d'utilisation (1 ligne) mais strchr() + '\0' est bien mieux optimisé pour cette tâche.
Il faut biensure faire cette opération avant de concaténer ".txt".
Est-ce que j'ai bien compris le problème et j'ai bien répondu?
strtok peut être utiliser. strtok va découper la chaine à chaque saut de ligne et retourner un pointeur sur la chaine. Je m'explique avec un exemple.
pour :
chaine1\nchaine2\nchaine3\n\0
strtok sortira
> chaine1\0
> chaine2\0
> chaine3\0
> \0
> NULL
> NULL, etc.
donc pour :
chaine1\n\0
on aurai :
> chaine1\0
> \0
> NULL, etc.
Code C :
fichier1 = strtok(Chaine, "\n"); /* pour le premier fichier, il faut spécifier le nom de la chaine à analyser. les '\n' présents dans la chaine seront remplacés par des '\0'. */
fichier2 = strtok(NULL, "\n"); /* Pour les fois suivantes, il ne faut pas spécifier la chaine car sinon, le résultat sera toujours fichier1. Il faut spécifier NULL pour les demandes suivantes. Si fichier2 (ou fichier1 d'ailleurs) vaut NULL, c'est que la fin de chaine initiale a été atteinte */
NB : Le second paramètre de strtok doit être entre guillemets et non entre apostrophes. Pour plus d'infos sur strftok : rechercher "man page strtok".
En l'occurence seul le premier appel à strtok est intéressant pour ce cas.
Sinon, il y a la possibilité de faire strchr() pour rechercher le '\n' et de placer '\0' à sa place. Ce qui revient à coder un version simplifiée de strtok.
strtok est plus simple d'utilisation (1 ligne) mais strchr() + '\0' est bien mieux optimisé pour cette tâche.
Il faut biensure faire cette opération avant de concaténer ".txt".
Est-ce que j'ai bien compris le problème et j'ai bien répondu?