Découper un texte avec Arduino
Fermé
Nems
-
28 sept. 2018 à 06:31
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 28 sept. 2018 à 14:10
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 28 sept. 2018 à 14:10
A voir également:
- Découper un texte avec Arduino
- Comment découper un pdf - Guide
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Excel cellule couleur si condition texte - Guide
- Découper une video - Guide
- Transcription audio en texte word gratuit - Guide
1 réponse
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié le 28 sept. 2018 à 10:28
Modifié le 28 sept. 2018 à 10:28
Salut Nems,
En C standard, on peut faire cela avec strtok(), cette fonction semblant disponible dans le langage C/C++ sur lequel se base Arduino (je ne peux pas tester cependant).
donne :
La fonction standard
Dal
En C standard, on peut faire cela avec strtok(), cette fonction semblant disponible dans le langage C/C++ sur lequel se base Arduino (je ne peux pas tester cependant).
#include <stdio.h> #include <string.h> int main(void) { char texte[255] = "12345,12345,12345,12345"; char * p; p = strtok(texte, ","); while (p != NULL) { printf("%s\n",p); p = strtok(NULL, ","); } return 0; }
donne :
12345 12345 12345 12345
La fonction standard
strtok()opère en écrasant les caractères séparateurs et en les remplaçant avec des
'\0'terminant chaque sous-chaîne identifiée. Le contenu originel en mémoire est donc altéré, mais cela te permet d'identifier et de traiter les sous-chaînes sans avoir besoin de mémoire supplémentaire, en utilisant juste une variable pointeur pour accéder aux sous-chaînes successives.
Dal
28 sept. 2018 à 12:34
Modifié le 28 sept. 2018 à 13:22
28 sept. 2018 à 13:40
Modifié le 28 sept. 2018 à 14:17
le résultat étant :
Dans un code réel, il faudrait vérifier qu'il n'y a pas plus de 4 sous-chaînes, s'il y en a moins décider aussi quoi faire, et si le texte comprend un nombre indéterminé de sous-chaînes, faire une allocation dynamique, avec malloc et des realloc pour étendre la mémoire au fur et à mesure si nécessaire, ou faire une première passe en comptant le nombre de pour faire direct un malloc de la bonne dimension (cette dernière solution étant en 2 temps, elle nécessite a priori plus de temps de calcul, mais elle optimisera l'utilisation de la mémoire).