Hola soy casi novato en mundo de la programcion, tengo una trabajo en c++ el cual tengo que crear un programa q dado una oración me organice las palabras de dicha oración dependiendo de la cantidad de caracteres que contenga dicha palabra. saludos y que dios los bendiga cuidado con el covid-19
¡Hola! Bienvenido/a por aquí.
Para este ejercicio lo más cómodo es separar la frase en palabras (tokenizar), meterlas en un array o vector de strings, y luego ordenar ese conjunto por longitud:
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
string frase;
cout << "Escribe una frase: ";
getline(cin, frase);
vector<string> palabras;
stringstream ss(frase);
string palabra;
while (ss >> palabra) {
palabras.push_back(palabra);
}
sort(palabras.begin(), palabras.end(), [](const string &a, const string &b) {
return a.size() < b.size();
});
for (const string &p : palabras) {
cout << p << " ";
}
cout << endl;
return 0;
}
stringstream se encarga de separar la frase en palabras por los espacios, y sort con una función de comparación propia (aquí una lambda) ordena el vector según el criterio que le des, en este caso el tamaño de cada palabra. Si necesitas hacerlo sin librería estándar, con arrays de C puro, el algoritmo es el mismo, solo cambia la forma de recorrer y comparar.
Un saludo, y cuidado ahí fuera con el covid-19 también por aquí ;)
Angel Carrero