Open In App
Related Articles

Extract all integers from string in C++

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Given a string, extract all integers words from it. Examples :

Input : str = "geeksforgeeks 12 13 practice"
Output : 12 13

Input : str = "1: Prakhar Agrawal, 2: Manish Kumar Rai, 3: Rishabh Gupta"
Output : 1 2 3

Input : str = "Ankit sleeps at 4 am."
Output : 4

The idea is to use stringstream:, objects of this class use a string buffer that contains a sequence of characters. 

Algorithm:

  1. Enter the whole string into stringstream. 
  2. Extract the all words from string using loop. 
  3. Check whether a word is integer or not.

Implementation:

CPP

/* Extract all integers from string */
#include <iostream>
#include <sstream>
using namespace std;
 
void extractIntegerWords(string str)
{
    stringstream ss;
 
    /* Storing the whole string into string stream */
    ss << str;
 
    /* Running loop till the end of the stream */
    string temp;
    int found;
    while (!ss.eof()) {
 
        /* extracting word by word from stream */
        ss >> temp;
 
        /* Checking the given word is integer or not */
        if (stringstream(temp) >> found)
            cout << found << " ";
 
        /* To save from space at the end of string */
        temp = "";
    }
}
 
// Driver code
int main()
{
    string str = "1: 2 3 4 prakhar";
    extractIntegerWords(str);
    return 0;
}

                    

Output
1 2 3 4 

Time Complexity: O(N), where, N is the length of the string. 
Auxiliary Space: O(1), We are not using any extra space. 

Related Articles : 


Last Updated : 14 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads