Split the string into substrings using delimiter

21 May, 2021
Given a string and a delimiter character. Split the string based on the delimiter and print the list of resulting sub strings.Examples:  
Input : str = "geeks;for;geeks"
        d_ch = ';'
Output : geeks
         for
         geeks

Input : str = "##ayush##jauhari####"
        d_ch = '#'
Output : ayush
         jauhari
Source: Microsoft IDC Bangalore Interview | Set 153.
 
Algorithm:  
splitStrings(str, substr_list, dl)
    Initialize word = ""
    Initialize num = 0
    str = str + dl
    l = str.size
    
    for i = 0 to l-1
        if str[i] != dl
           word = word + str[i]
        else
           if word.size != 0
               substr_list[num] = word
               num++
           word = ""

    return num
This algorithm will fill in the splitted substrings in the array substr_list[] and will return the number of such substrings as num. 
C++
Java
Python3
C#
Javascript
// C++ implementation to split string into// substrings on the basis of delimiter#include <bits/stdc++.h>using namespace std; // function to split string into substrings on the// basis of delimiter and return the substrings// after splitvector<string> splitStrings(string str, char dl){    string word = "";     // to count the number of split strings    int num = 0;     // adding delimiter character at the end    // of 'str'    str = str + dl;     // length of 'str'    int l = str.size();     // traversing 'str' from left to right    vector<string> substr_list;    for (int i = 0; i < l; i++) {         // if str[i] is not equal to the delimiter        // character then accumulate it to 'word'        if (str[i] != dl)            word = word + str[i];         else {             // if 'word' is not an empty string,            // then add this 'word' to the array            // 'substr_list[]'            if ((int)word.size() != 0)                substr_list.push_back(word);             // reset 'word'            word = "";        }    }     // return the splitted strings    return substr_list;} // Driver program to test aboveint main(){    string str = "geeks;for;geeks";    char dl = ';';     vector<string> res = splitStrings(str, dl);    for (auto x : res)        cout << x << endl;     return 0;}
// Java implementation to split String into// substrings on the basis of delimiterimport java.util.*; class GFG{     // function to split String into subStrings    // on the basis of delimiter and return    // the subStrings after split    static Vector<String> splitStrings(String str, char dl)    {        String word = "";         // to count the number of split Strings        int num = 0;         // adding delimiter character        // at the end of 'str'        str = str + dl;         // length of 'str'        int l = str.length();         // traversing 'str' from left to right        Vector<String> substr_list = new Vector<String>();        for (int i = 0; i < l; i++)        {             // if str[i] is not equal to the delimiter            // character then accumulate it to 'word'            if (str.charAt(i) != dl)            {                word = word + str.charAt(i);            }            else            {                 // if 'word' is not an empty String,                // then add this 'word' to the array                // 'substr_list[]'                if ((int) word.length() != 0)                {                    substr_list.add(word);                }                 // reset 'word'                word = "";            }        }         // return the splitted Strings        return substr_list;    }     // Driver code    public static void main(String[] args)    {        String str = "geeks;for;geeks";        char dl = ';';        Vector<String> res = splitStrings(str, dl);        for (String x : res)        {            System.out.println(x);        }    }} // This code is contributed by PrinciRaj1992
# Python 3 implementation to split string# into substrings on the basis of delimiter # function to split string into substrings# on the basis of delimiter and return the# substrings after splitdef splitStrings(st, dl):    word = ""     # to count the number of split strings    num = 0     # adding delimiter character at    # the end of 'str'    st += dl     # length of 'str'    l = len(st)     # traversing 'str' from left to right    substr_list = []    for i in range(l):                 # if str[i] is not equal to the        # delimiter character then accumulate        # it to 'word'        if (st[i] != dl):            word += st[i]         else:                         # if 'word' is not an empty string,            # then add this 'word' to the array            # 'substr_list[]'            if (len(word) != 0):                substr_list.append(word)             # reset 'word'            word = ""             # return the splitted strings    return substr_list # Driver Codeif __name__ == '__main__':    str = "geeks;for;geeks"    dl = ';'     res = splitStrings(str, dl)    for x in range(len(res)):        print(res[x]) # This code is contributed by# Surendra_Gangwar
// C# implementation to split String into// substrings on the basis of delimiterusing System;using System.Collections.Generic; class GFG{     // function to split String into subStrings    // on the basis of delimiter and return    // the subStrings after split    static List<String> splitStrings(String str, char dl)    {        String word = "";         // to count the number of split Strings        int num = 0;         // adding delimiter character        // at the end of 'str'        str = str + dl;         // length of 'str'        int l = str.Length;         // traversing 'str' from left to right        List<String> substr_list = new List<String>();        for (int i = 0; i < l; i++)        {             // if str[i] is not equal to the delimiter            // character then accumulate it to 'word'            if (str[i] != dl)            {                word = word + str[i];            }            else            {                 // if 'word' is not an empty String,                // then add this 'word' to the array                // 'substr_list[]'                if ((int) word.Length != 0)                {                    substr_list.Add(word);                }                 // reset 'word'                word = "";            }        }         // return the splitted Strings        return substr_list;    }     // Driver code    public static void Main()    {        String str = "geeks;for;geeks";        char dl = ';';        List<String> res = splitStrings(str, dl);        foreach (String x in res)        {            Console.WriteLine(x);        }    }} //This code is contributed by 29AjayKumar
<script> // Javascript implementation to split string into// substrings on the basis of delimiter // function to split string into substrings on the// basis of delimiter and return the substrings// after splitfunction splitStrings(str, dl){    var word = "";     // to count the number of split strings    var num = 0;     // adding delimiter character at the end    // of 'str'    str = str + dl;     // length of 'str'    var l = str.length;     // traversing 'str' from left to right    var substr_list = [];    for (var i = 0; i < l; i++) {         // if str[i] is not equal to the delimiter        // character then accumulate it to 'word'        if (str[i] != dl)            word = word + str[i];         else {             // if 'word' is not an empty string,            // then add this 'word' to the array            // 'substr_list[]'            if (word.length != 0)                substr_list.push(word);             // reset 'word'            word = "";        }    }     // return the splitted strings    return substr_list;} // Driver program to test abovevar str = "geeks;for;geeks";var dl = ';';var res = splitStrings(str, dl);res.forEach(x => {     document.write( x + "<br>");}); </script>
Output:  
geeks
for
geeks
Time Complexity: O(n), where n is the length of the given string. 
princiraj1992
29AjayKumar
SURENDRA_GANGWAR
famously
cpp-vector
Strings
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Longest Palindromic Substring | Set 1
Length of the longest substring without repeating characters
Convert string to char array in C++
Top 50 String Coding Problems for Interviews
Check whether two strings are anagram of each other
What is Data Structure: Types, Classifications and Applications
Reverse words in a given string
Print all the duplicates in the input string
Reverse string in Python (6 different ways)
Remove duplicates from a given string