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:
- 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 :