Dev - C++ - STRING: EXTRAER PALABRAS DE UN TEXTO Y ORDENARLAS

 
Vista:
sin imagen de perfil

STRING: EXTRAER PALABRAS DE UN TEXTO Y ORDENARLAS

Publicado por Erica (2 intervenciones) el 05/05/2022 00:56:55
Tengo una duda: Mediante STRING, no se cómo extraer de un texto las palabras que lo forman y ordenarlas en funcion del tamaño de cada una
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

STRING: EXTRAER PALABRAS DE UN TEXTO Y ORDENARLAS

Publicado por antonio (85 intervenciones) el 05/05/2022 11:01:52
Si te refieres a un texto normal este seria el codigo (sacado de https://www.delftstack.com/es/howto/cpp/cpp-split-string-by-space/):

#include <iostream>
#include <string>
#include <sstream>
#include <iterator>
#include <vector>
#include <algorithm>
using std::cout; using std::cin;
using std::endl; using std::string;
using std::vector; using std::istringstream;
using std::stringstream;
using std::string; using std::sort;

int main(){
string text = "palabra1 una dos a guia ";
string space_delimiter = " ";
vector<string> words{};

size_t pos = 0;
//obtener palabra a palabra de un texto
while ((pos = text.find(space_delimiter)) != string::npos) {
words.push_back(text.substr(0, pos));
text.erase(0, pos + space_delimiter.length());
}

/*Método burbuja de ordenación esta en muchas paginas explicado pero en este caso por el tamaño de las palabras también valdría para un array de string normal si fuese el otro caso*/
string aux;
for (int i = 0; i < words.size() - 1; i++) {
for (int j = 1; j < words.size(); j++){
if (words[j].size() < words[j-1].size())
{ // si el elemento anterior es mayor, hacemos el cambio
aux= words[j];
words[j] = words[j-1];
words[j-1] = aux;
}
}
}
//Mostrar resultado
for (int i=0;i<words.size();i++){
cout<<words[i]<<" ";
}
return EXIT_SUCCESS;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar