How to split a string into fixed length chunks in C

1 Answer

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

int split_string_into_chunks(char str[], char *chunks[32], int length) {
    int chunkCount = 0;

    for (size_t i = 0; i < strlen(str); i += length) {
        chunks[chunkCount] = (char *)malloc(length + 1);
        strncpy(chunks[chunkCount], str + i, length);
        chunks[chunkCount][length] = '\0'; // Null-terminate the string
        chunkCount++;
    }
    
    return chunkCount;
}

int main() {
    char str[] = "java c++ c python c#";
    int length = 5;
    char *chunks[32]; 
    
    int chunkCount = split_string_into_chunks(str, chunks, length);

    for (size_t i = 0; i < chunkCount; ++i) {
        printf("%s", chunks[i]);
        if (i < chunkCount - 1) {
            printf(", ");
        }
        free(chunks[i]); 
    }

    return 0;
}



/*
run:

java , c++ c,  pyth, on c#

*/



 



answered Jul 23, 2024 by avibootz

Related questions

1 answer 120 views
1 answer 129 views
1 answer 122 views
1 answer 113 views
1 answer 150 views
1 answer 129 views
2 answers 194 views
...