Extract all integers from string in C++
Given a string, extract all integers words from it. Examples :
Input : str = "w3wiki 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:
- Enter the whole string into stringstream.
- Extract the all words from string using loop.
- 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 :
Contact Us