How to convert string to 2D array in C

2 Answers

0 votes
#include <stdio.h> 

int main() 
{ 
    int j = 0, k = 0;
    char str[128] = "C is a general-purpose, procedural computer programming language";
    char arr2d[16][32] = {'\0'}; 
 
    // Convert the string into a 2D array    
    for (int i = 0; str[i] != '\0'; i++) { 
        if (str[i] == ' ') { 
            arr2d[k][j] = '\0'; 
            k++; 
            j = 0; 
        } 
        else { 
            arr2d[k][j] = str[i]; 
            j++; 
        } 
    } 
      
    for (int i = 0; i < k; i++) { 
        puts(arr2d[i]);
    } 

    return 0;
} 
 
 
 
 
 
/*
run:
 
C
is
a
general-purpose,
procedural
computer
programming
 
*/

 



answered Aug 25, 2021 by avibootz
edited Nov 18, 2022 by avibootz
0 votes
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int stringToArray2d(char str[], char words[][20]) {
    int i = 0, j = 0, k = 0;

    while (str[i] != 0) {
        if (str[i] == ' ') {
            words[k][j] = '\0';
            k++;
            j = 0;
        }
        else {
            words[k][j] = str[i];
            j++;
        }
        i++;
    }
    words[k][j] = '\0';

    return k + 1;
}

int main()
{
    char str[128] = "C is a general purpose computer programming language";
    char words[12][20] = {{""}};

    int len = stringToArray2d(str, words);

    for (int i = 0; i < len; i++) {
        puts(words[i]);
    }

    return 0;
}





/*
run:
 
C
is
a
general
purpose
computer
programming
language
 
*/

 



answered Nov 18, 2022 by avibootz

Related questions

2 answers 143 views
143 views asked Aug 14, 2024 by avibootz
1 answer 161 views
1 answer 169 views
1 answer 106 views
1 answer 102 views
1 answer 190 views
...