How to split string into array of words in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void split(char str[], char *delimiter) {
    char *p = strtok(str, delimiter);
    int items = 0;
    char **arr;

    while (p) {
        arr = realloc(arr, sizeof(char *) * ++items);

        if (arr == NULL)
            exit(-1); 
    
        arr[items - 1] = p;
         
        p = strtok(NULL, delimiter);
    }

    for (int i = 0; i < items; ++i)
        printf ("arr[%d] = %s\n", i, arr[i]);
        
    free(arr);
}
   
 
int main()
{
    char s[] = "c:is:a:general:purpose:procedural:computer:programming:language";
    
    split(s, ":");
     
    return 0;
}
 
 
 
 
 
 
/*
run:
         
arr[0] = c
arr[1] = is
arr[2] = a
arr[3] = general
arr[4] = purpose
arr[5] = procedural
arr[6] = computer
arr[7] = programming
arr[8] = language
    
*/

 



answered Dec 25, 2021 by avibootz

Related questions

1 answer 139 views
1 answer 164 views
164 views asked Dec 25, 2021 by avibootz
1 answer 191 views
191 views asked Jul 17, 2020 by avibootz
2 answers 183 views
183 views asked Feb 3, 2017 by avibootz
2 answers 165 views
1 answer 181 views
...