Split

source code


char **split(char *s)
{
    int spaces = 0;
    int start = 0;
    int spl_i = 0;
    char **spl;

    for (int i = 0; s[i]; i++)
        spaces += (s[i] == 32);
    spl = malloc((spaces + 1) * sizeof(char *));
    for (int i = 0; s[i]; i++)
    {
        if (s[i] == 32)
        {
            s[i] = 0;
            spl[spl_i++] = s + start;
            start = i + 1;
        }
    }
    spl[spl_i++] = s + start;
    spl[spl_i] = NULL;
    return (spl);
}