diff options
Diffstat (limited to 'src/common/extstr.c')
-rw-r--r-- | src/common/extstr.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/common/extstr.c b/src/common/extstr.c index 5b2dfd8..f8e83f2 100644 --- a/src/common/extstr.c +++ b/src/common/extstr.c @@ -184,6 +184,44 @@ char *strrpl(char *haystack, const char *needle1, const char *needle2) /****************************************************************************** * * +* Paramètres : str = chaîne de caractères à traiter. * +* delim = séparateur entre les mots. * +* count = nombre de mots trouvés. [OUT] * +* * +* Description : Extrait une liste de mots d'une chaîne. * +* * +* Retour : Tableau construit à libérer de la mémoire. * +* * +* Remarques : - * +* * +******************************************************************************/ + +char **strtoka(const char *str, const char *delim, size_t *count) +{ + char **result; /* Tableau à retourner */ + char *tmp; /* Sauvegarde modifiable */ + char *word; /* Nouveau mot détecté */ + + result = NULL; + *count = 0; + + tmp = strdup(str); + + for (word = strtok(tmp, delim); word != NULL; word = strtok(NULL, delim)) + { + result = (char **)realloc(result, ++(*count) * sizeof(char *)); + result[*count - 1] = strdup(word); + } + + free(tmp); + + return result; + +} + + +/****************************************************************************** +* * * Paramètres : input = chaîne de caractères à traiter. * * * * Description : S'assure qu'une chaîne de caractères tient sur une ligne. * |