Extrae todos los enteros de una string en C++

Dada una string, extrae todas las palabras enteras de ella. Ejemplos:

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

La idea es usar stringstream: , los objetos de esta clase usan un búfer de strings que contiene una secuencia de caracteres. 

Algoritmo:

  1. Ingrese la string completa en stringstream. 
  2. Extrae todas las palabras de la string usando loop. 
  3. Comprobar si una palabra es entera o no.

Implementación:

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;
}
Producción

1 2 3 4 

Artículos relacionados : 

Este artículo es una contribución de Prakhar Agrawal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *