Ayuda en c++ para ordener palabras segun su tamaño

juli dj
09 de Abril del 2020

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


Angel Carrero
12 de Agosto del 2026

¡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