📜  将字符串转换为字符的方阵网格

📅  最后修改于: 2022-05-13 01:57:08.596000             🧑  作者: Mango

将字符串转换为字符的方阵网格

给定一个长度为 L 的字符串。任务是将字符串转换为网格。
例子:

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

注意: & l =字符串的长度

方法:

  1. 不使用内置函数
  2. 制作(行*列)大小的二维字符数组。
  3. 分配作为列值的值 K。
  4. 打印二维字符数组。

下面是上述方法的实现。

C++
#include 
using namespace std;
 
// Function to string into grid form
void 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 code
int main()
{
    string str = "GEEKSFORGEEKS";
    gridStr(str);
     
    return 0;
}


Java
// Java implementation of the
// above approach
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.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
# Python3 implementation of the
# above approach
 
 
 
# Function to string into grid form
def 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#
// C# implementation of the
// above approach
using 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


Javascript


输出:
GEEK
SFOR
GEEK
S