Open In App

How to Split a C++ String into a Vector of Substrings?

Last Updated : 01 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

In C++, splitting a string into a vector of substrings means we have to split the given string into a substring based on a given delimiter and store each substring in a vector. In this article, we will learn how to split a string into a vector of substrings in C++.

Example:

Input: 
str= "Hello, I am Geek from Geeksforgeeks "
Delimiter= ' '

Output:
Hello,
I
am
Geek
from
Geeksforgeeks

Split an std::string into a Vector of Strings in C++

To split a std::string into a std::vector of substrings use the stringstream with a combination of std::string::getline. The below steps shows how to do that:

Approach

  • Create an input string stream from the input string using the stringstream.
  • Iterate through the stream, using getline to extract the substring using the delimiter.
  • Add the extracted substring to the vector.
  • Print the vector of substrings.

C++ Program to Split a String into Vector of Substrings

The below example demonstrates how we can split a given string into a vector of substrings in C++.

C++




// C++ Program to illustrate how to split a string to vector
// of substring
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <vector>
  
using namespace std;
  
// Function to split a string into tokens based on a
// delimiter
vector<string> splitString(string& input, char delimiter)
{
  
    // Creating an input string stream from the input string
    istringstream stream(input);
  
    // Vector to store the tokens
    vector<string> tokens;
  
    // Temporary string to store each token
    string token;
  
    // Read tokens from the string stream separated by the
    // delimiter
    while (getline(stream, token, delimiter)) {
        // Add the token to the vector of tokens
        tokens.push_back(token);
    }
  
    // Return the vector of tokens
    return tokens;
}
  
int main()
{
    // Input string
    string input = "Hello, I am Geek from Geeksforgeeks";
  
    // Delimiter
    char delimiter = ' ';
  
    // calling the function to Split the input string into
    // vector of substring
    vector<string> vecOfSubStr
        = splitString(input, delimiter);
  
    // Print the vector of substrings
    for (auto& it : vecOfSubStr) {
        cout << it << endl;
    }
  
    return 0;
}


Output

Hello,
I
am
Geek
from
Geeksforgeeks

Time complexity: O(n), here n is the length of the input string.
Auxilliary Space: O(n)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads