Dans cet exemple on considère que :

char *str est une chaine de caractères qui se finit par '\0' on passe le char * * split déja alloué, i.e. on a malloc() ou on passe une adresse de tableau la fonction retourne le nombre d'elements du char * *

int
splitstr(char **split, char *str, char sep)
{
        uint16_t i = 0;
        char *p = str;
 
        *split = str;
 
        while (*p && (*p != '\n') && (*p != '\r')) {
                if (*p == sep) {
                        *p++ = 0;
                        if ((*p != 0) && (*p != sep))
                                split[++i] = p;
                }
                p++;
        }
 
        return (++i);
}
codaz/c/string_split.txt · Last modified: 2010/01/12 13:29 (external edit)