diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2009-07-12 15:26:23 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2009-07-12 15:26:23 (GMT) |
commit | c9465acd65e197e48da8648eb8d1ef602d6772ed (patch) | |
tree | fbb5ceaaa683bd1beb0b66d5e5d212b927a9f6b0 /src/common | |
parent | 5f2cd35c377989e07b241870f89fdf87d851465d (diff) |
Read and saved projects from and into XML files.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@91 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/extstr.c | 38 | ||||
-rw-r--r-- | src/common/extstr.h | 6 |
2 files changed, 44 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. * diff --git a/src/common/extstr.h b/src/common/extstr.h index 3e27608..80759b5 100644 --- a/src/common/extstr.h +++ b/src/common/extstr.h @@ -25,6 +25,9 @@ #define _COMMON_EXTSTR_H +#include <sys/types.h> + + /* Complète une chaîne de caractères avec une autre. */ char *stradd(char *str1, const char *str2); @@ -38,6 +41,9 @@ int strrcmp(const char *, const char *); /* Remplace des éléments d'une chaîne par d'autres. */ char *strrpl(char *, const char *, const char *); +/* Extrait une liste de mots d'une chaîne. */ +char **strtoka(const char *, const char *, size_t *); + /* S'assure qu'une chaîne de caractères tient sur une ligne. */ char *escape_crlf(char *); |