Divide a string in N equal parts

27 Jun, 2022
Difficulty Level: RookieQuestion: Write a program to print N equal parts of a given string. 
Solution: 1) Get the size of the string using string function strlen() (present in the string.h) 2) Get the size of a part. 
part_size = string_length/n 
3) Loop through the input string. In loop, if index becomes multiple of part_size then put a part separator(“\n”)
Implementation: 
C++
C
Java
Python3
C#
PHP
Javascript
// C++ program to divide a string// in n equal parts#include <iostream>#include <string.h> using namespace std; class gfg {     // Function to print n equal parts of strpublic:    void divideString(char str[], int n)    {         int str_size = strlen(str);        int i;        int part_size;         // Check if string can be divided in        // n equal parts        if (str_size % n != 0) {            cout << "Invalid Input: String size";            cout << " is not divisible by n";            return;        }         // Calculate the size of parts to        // find the division points        part_size = str_size / n;        for (i = 0; i < str_size; i++) {            if (i % part_size == 0)                cout << endl;            cout << str[i];        }    }}; // Driver codeint main(){    gfg g;     // length od string is 28    char str[] = "a_simple_divide_string_quest";     // Print 4 equal parts of the string    g.divideString(str, 4);    return 0;} // This code is contributed by SoM15242
// C program to divide a string// in n equal parts#include <stdio.h>#include <string.h> // Function to print n equal parts of strvoid divideString(char* str, int n){    int str_size = strlen(str);    int i;    int part_size;     // Check if string can be divided in    // n equal parts    if (str_size % n != 0) {        printf("Invalid Input: String size");        printf(" is not divisible by n");        return;    }     // Calculate the size of parts to    // find the division points    part_size = str_size / n;    for (i = 0; i < str_size; i++) {        if (i % part_size == 0)            printf("\n");        printf("%c", str[i]);    }} int main(){    // length od string is 28    char* str = "a_simple_divide_string_quest";     // Print 4 equal parts of the string    divideString(str, 4);     getchar();    return 0;}
// Java program to divide a string// in n equal parts class GFG {    // Method to print n equal parts of str    static void divideString(String str, int n)    {        int str_size = str.length();        int part_size;         // Check if string can be divided in        // n equal parts        if (str_size % n != 0) {            System.out.println("Invalid Input: String size"                               + "is not divisible by n");            return;        }         // Calculate the size of parts to find        // the division points        part_size = str_size / n;         for (int i = 0; i < str_size; i++) {            if (i % part_size == 0)                System.out.println();            System.out.print(str.charAt(i));        }    }     // Driver Code    public static void main(String[] args)    {        // length od string is 28        String str = "a_simple_divide_string_quest";         // Print 4 equal parts of the string        divideString(str, 4);    }}
# Python program to print n equal parts of string # Function to print n equal parts of string  def divideString(string, n):    str_size = len(string)     # Check if string can be divided in n equal parts    if str_size % n != 0:        print ("Invalid Input: String size is not divisible by n")        return     # Calculate the size of parts to find the division points    part_size = str_size/n    k = 0    for i in string:        if k % part_size == 0:            print ()        print (i,end='')        k += 1  # Driver program to test the above function# Length of string is 28string = "a_simple_divide_string_quest" # Print 4 equal parts of the stringdivideString(string, 4) # This code is contributed by Bhavya Jain
// C# program to divide a string// in n equal partsusing System; class GFG {     // Method to print n    // equal parts of str    static void divideString(String str, int n)    {        int str_size = str.Length;        int part_size;         // Check if string        // can be divided in        // n equal parts        if (str_size % n != 0) {            Console.Write("Invalid Input: String size"                          + "is not divisible by n");            return;        }         // Calculate the size        // of parts to find        // the division points        part_size = str_size / n;         for (int i = 0; i < str_size; i++) {            if (i % part_size == 0)                Console.WriteLine();            Console.Write(str[i]);        }    }     // Driver Code    static void Main()    {         // length od string is 28        String str = "a_simple_divide_string_quest";         // Print 4 equal parts of the string        divideString(str, 4);    }} // This code is contributed by Anuj_67
<?php// PHP program to divide a string// in n equal parts // Function to print n// equal parts of strfunction divideString($str, $n){    $str_size = strlen($str);    $i;    $part_size; // Check if string can be divided// in n equal partsif ($str_size % $n != 0){    echo "Invalid Input: String size";    echo " is not divisible by n";    return;} // Calculate the size of parts to// find the division point$part_size = $str_size / $n;for ($i = 0; $i< $str_size; $i++){    if ($i % $part_size == 0)        echo "\n";    echo $str[$i];}}     // Driver Code    // length od string is 28    $str = "a_simple_divide_string_quest";     // Print 4 equal parts of the string    divideString($str, 4); // This code is contributed by ajit.?>
<script>    // Javascript program to divide a string    // in n equal parts         // Method to print n    // equal parts of str    function divideString(str, n)    {        let str_size = str.length;        let part_size;         // Check if string        // can be divided in        // n equal parts        if (str_size % n != 0)        {            document.write("Invalid Input: String size" +                          "is not divisible by n");            return;        }         // Calculate the size        // of parts to find        // the division points        part_size = parseInt(str_size / n, 10);         for (let i = 0; i< str_size; i++)        {            if(i % part_size == 0)                document.write("</br>");            document.write(str[i]);        }    }           // length od string is 28    let str = "a_simple_divide_string_quest";     // Print 4 equal parts of the string    divideString(str, 4);         // This code is contributed by rameshtravel07</script>
Chapters
descriptions off, selected
captions settings, opens captions settings dialog
captions off, selected
English
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
a_simpl
e_divid
e_strin
g_quest
Time Complexity: O(n), where n is the length
C++
Java
Python3
C#
Javascript
#include <iostream> using namespace std; void divide(string str, int n){     if (str.length() % n != 0) {        cout << "Invalid Input: String size";        cout << " is not divisible by n";        return;    }     int parts = str.length() / n;    int start = 0;     while (start < str.length()) {        cout << str.substr(start, parts) << endl;        start += parts;        // if(start < str.length()) cout << endl; to ignore        // final new line    }} int main(){    string str = "a_simple_divide_string_quest";    divide(str, 4);} //Contributed By Jagadeesh
import java.util.*; class GFG {     static void divide(String str, int n) {         if (str.length() % n != 0) {            System.out.print("Invalid Input: String size");            System.out.print(" is not divisible by n");            return;        }         int parts = str.length() / n;        int start = 0;        int t = parts;        while (start < str.length()) {            String temp = new String(str);             System.out.print(temp.substring(start, parts) + "\n");            start = parts;            parts += t;            // if(start < str.length()) System.out.println(); to ignore            // final new line        }    }   // Driver code    public static void main(String[] args) {        String str = "a_simple_divide_String_quest";        divide(str, 4);    }} // This code is contributed by umadevi9616
# Python code for the same approachdef divide(Str,n):     if (len(Str) % n != 0):        print("Invalid Input: String size",end="")        print(" is not divisible by n")        return     parts = len(Str) // n    start = 0     while (start < len(Str)):        print(Str[start: start + parts])        start += parts        # if(start < len(Str)) cout << endl; to ignore        # final new line     # driver codeStr = "a_simple_divide_string_quest"divide(Str, 4) # This code is contributed By shinjanpatra
// C# program to divide a string// in n equal partsusing System; public class GFG {  public static void divide(String str, int n)  {         // Check if string    // can be divided in    // n equal parts    if (str.Length % n != 0) {      Console.Write("Invalid Input: String size");      Console.Write(" is not divisible by n");      return;    }    // Calculate the size    // of parts to find    // the division points    var parts = (int)(str.Length / n);    var start = 0;    var t = parts;    while (start < str.Length) {      var temp = new String(str);      Console.Write(        temp.Substring(start, parts - start)        + "\n");      start = parts;      parts += t;    }  }  // Driver code  public static void Main(String[] args)  {    var str = "a_simple_divide_String_quest";    divide(str, 4);  }} // This code is contributed by Aarti_Rathi
<script> function divide(str,n){     if (str.length % n != 0) {        document.write("Invalid Input: String size");        document.write(" is not divisible by n");        return;    }     let parts = Math.floor(str.length / n);    let start = 0;     while (start < str.length) {        document.write(str.substring(start, start+parts),"</br>");        start += parts;                 // if(start < str.length()) cout << endl; to ignore        // final new line    }} // driver codelet str = "a_simple_divide_string_quest";divide(str, 4); // This code is contributed By shinjanpatra </script>
 of string.
Auxiliary Space: O(1).
In the above solution, n equal parts of the string are only printed. If we want individual parts to be stored, we need to allocate part_size + 1 memory for all N parts (1 extra for string termination character ‘\0’) and store the addresses of the parts in an array of character pointers. 
Another Approach: Using STL in C++Implemention:
a_simpl
e_divid
e_strin
g_quest
Time Complexity: O(n), where n is the length of string.
Auxiliary Space: O(n), because when string is passed to the function it creates a copy of itself (passing by value).
Plein case write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
vt_m
jit_t
SoumikMondal
rameshtravel07
jagadeeshrian
umadevi9616
amartyaghoshgfg
shinjanpatra
anandkumarshivam2266
hardikkoriintern
codewithshinchan
Strings
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Write a program to reverse an array or string
Reverse a string in Java
Write a program to print all permutations of a given string
C++ Data Types
Different Methods to Reverse a String in C++
Python program to check if a string is palindrome or not
Check for Balanced Brackets in an expression (well-formedness) using Stack
Longest Common Subsequence | DP-4
Length of the longest substring without repeating characters
Convert string to char array in C++