Convert a String into a square matrix grid of characters - GeeksforGeeks

07 Oct, 2021
Given a string of length L. The task is to convert the string into a grid.Examples:  
Input : str = "haveaniceday"
Output :  have
          anic
          eday    

Explanation: k is the separator. If k is 4 then the output will be "have
          anic
          eday"

Input :str = "geeksforgeeks"
Output : geek
         sfor
         geek
         s
Note: & l = length of the string  
Approach:  
Without using an inbuilt functionMake a 2d character array of (rows * column) size.Assign the value K which is a column value.Print the 2d character array.
Without using an inbuilt function
Make a 2d character array of (rows * column) size.
Assign the value K which is a column value.
Print the 2d character array.
Below is the implementation of the above approach.  
C++
Java
Python3
C#
PHP
Javascript
#include <bits/stdc++.h>using namespace std; // Function to string into grid formvoid gridStr(string str){    int l = str.length();    int k = 0, row, column;    row = floor(sqrt(l));    column = ceil(sqrt(l));     if (row * column < l)        row = column;     char s[row][column];    // convert the string into grid    for (int i = 0; i < row; i++) {        for (int j = 0; j < column; j++) {            s[i][j] = str[k];            k++;        }    }     // Printing the grid    for (int i = 0; i < row; i++) {        for (int j = 0; j < column; j++) {            if (s[i][j] == '\0')                break;            cout << s[i][j];        }        cout << endl;    }} // Driver codeint main(){    string str = "GEEKSFORGEEKS";    gridStr(str);         return 0;}
// Java implementation of the// above approachclass GFG{     // Function to string into grid form    static void gridStr(String str)    {        int l = str.length();        int k = 0, row, column;        row = (int) Math.floor(Math.sqrt(l));        column = (int) Math.ceil(Math.sqrt(l));         if (row * column < l)        {            row = column;        }         char s[][] = new char[row][column];                 // convert the string into grid        for (int i = 0; i < row; i++)        {            for (int j = 0; j < column; j++)            {                if(k < str.length())                    s[i][j] = str.charAt(k);                k++;            }        }         // Printing the grid        for (int i = 0; i < row; i++)        {            for (int j = 0; j < column; j++)            {                if (s[i][j] == 0)                {                    break;                }                System.out.print(s[i][j]);            }            System.out.println("");        }    }     // Driver code    public static void main(String[] args)    {        String str = "GEEKSFORGEEKS";        gridStr(str);    }} //This code is contributed by Rajput-Ji
# Python3 implementation of the# above approach   # Function to string into grid formdef function(str, k):     for i in range(len(str)):        if i %k == 0:            sub = str[i:i+k]            lst = []            for j in sub:                lst.append(j)            print(' '.join(lst)) function("GEEKSFORGEEKS", 5) /* This code contributed by nsew1999gokulcvan */
// C# implementation of the// above approachusing System; class GFG{     // Function to string into grid form    static void gridStr(String str)    {        int l = str.Length;        int k = 0, row, column;        row = (int) Math.Floor(Math.Sqrt(l));        column = (int) Math.Ceiling(Math.Sqrt(l));         if (row * column < l)        {            row = column;        }         char [,]s = new char[row,column];                 // convert the string into grid        for (int i = 0; i < row; i++)        {            for (int j = 0; j < column; j++)            {                if(k < str.Length)                    s[i,j] = str[k];                k++;            }        }         // Printing the grid        for (int i = 0; i < row; i++)        {            for (int j = 0; j < column; j++)            {                if (s[i, j] == 0)                {                    break;                }                Console.Write(s[i, j]);            }            Console.WriteLine("");        }    }     // Driver code    public static void Main()    {        String str = "GEEKSFORGEEKS";        gridStr(str);    }} /* This code contributed by PrinciRaj1992 */
<?php// PHP implementation of the// above approach // Function to string into grid formfunction gridStr($str){    $l = strlen($str);    $k = 0;    $row = floor(sqrt($l));    $column = ceil(sqrt($l));     if ($row * $column < $l)        $row = $column;     $s = array_fill(0, $row,         array_fill(0, $column, ""));    // convert the string into grid    for ($i = 0; $i < $row; $i++)    {        for ($j = 0; $j < $column; $j++)        {            if(!empty($str[$k]))            $s[$i][$j] = $str[$k];            $k++;        }    }     // Printing the grid    for ($i = 0; $i < $row; $i++)    {        for ($j = 0; $j < $column; $j++)        {            if ($s[$i][$j] == '\0')                break;            echo $s[$i][$j];        }        echo "\n";    }} // Driver code$str = "GEEKSFORGEEKS";gridStr($str); // This code is contributed by mits?>
<script>    // Javascript implementation of the above approach         // Function to string into grid form    function gridStr(str)    {        let l = str.length;        let k = 0, row, column;        row = Math.floor(Math.sqrt(l));        column = Math.ceil(Math.sqrt(l));           if (row * column < l)        {            row = column;        }           let s = new Array(row);        for (let i = 0; i < row; i++)        {            s[i] = new Array(column);            for (let j = 0; j < column; j++)            {                s[i][j] = 0;            }        }                   // convert the string into grid        for (let i = 0; i < row; i++)        {            for (let j = 0; j < column; j++)            {                if(k < str.length)                    s[i][j] = str[k];                k++;            }        }           // Printing the grid        for (let i = 0; i < row; i++)        {            for (let j = 0; j < column; j++)            {                if (s[i][j] == 0)                {                    break;                }                document.write(s[i][j]);            }            document.write("</br>");        }    }         let str = "GEEKSFORGEEKS";      gridStr(str); // This code is contributed by decode2207.</script>
GEEK
SFOR
GEEK
S
 
ankthon
Rajput-Ji
princiraj1992
Mithun Kumar
hemantsonirbz
nsew1999gokulcvan
decode2207
sumitgumber28
school-programming
Matrix
Strings
Strings
Matrix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Flood fill Algorithm - how to implement fill() in paint?
Breadth First Traversal ( BFS ) on a 2D array
Program to find the Sum of each Row and each Column of a Matrix
Python program to add two Matrices
Mathematics | L U Decomposition of a System of Linear Equations
Write a program to reverse an array or string
Reverse a string in Java
Longest Common Subsequence | DP-4
Write a program to print all permutations of a given string
C++ Data Types