Separador de silabas? C++

menxo

Bovino adolescente
#1
Que rollo ba-kunos, en esta ocacion les pido ayuda con un separador de silabas en c++

Bueno, ahora el Pro se dio el lujo de encargarnos un programa que separe en silabas una palabra. La verdad no me preocupo por las reglas de silabacion, sino por la logica del codigo.

Lo que busco es que me digan que librerias puedo usar para recorrer la palabra o "revisarla" buscando diptongos y cosas de esas.

Ojo, no quiero que me hagan el programa. Quiero un poco de ayuda con la logica. Este es mi programa (No llevo mucho, es por que no se que hacer):

#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
int main ()
{
int x;
char palabra[50];
char v[6]="aeiou";
char c[22]="bcdfhjklmnñpqrstvwxyz";
char *pv,*pc;
cout<<"teclea una palabra"<<endl;
cin>>palabra;
for(x=0;x<=strlen(palabra)-1;x++)
{
pv= strchr(v,palabra[x]);
pc= strchr(c,palabra[x]);

if (pv)
{
cout<<palabra[x]<<"-"<<endl;
}
else
{
if (pc)
cout<<"Consonante"<<endl;
else
cout<<"Otro"<<endl;
}
}
getch();
return 0;
}

Bueno, lo que el programa hace como pueden ver, es que introducimos una letra, luego lo que hace es que nos dice que contiene (vocal, consonante y otro=numeros, signos, etc)

Agradezco mucho la ayuda proporcionada ba-kunos!

OK por obra de no se que NO pude hacer el programa, entregue un programa que separaba palabras SIN diptongos. Por ejemplo: CHAMARRA. Lo demas no lo pude hacer que funcionara. Me saque un 9 debido a que entregue un programa que habia hecho hace un mes y pues me fue bien

Ahora mi pregunta es, quien me pude proporcionar el codigo de este programa ya trabajando? Quisiera ver como debio de haber quedado el programa. Gracias
 

Basilisko

Bovino maduro
#4
tienes k aprender tu solo a programar jajaja no a k te hagan tu tarea

Que onda bakuno, bien clarito dice que no quiere que le hagan la tarea, solo que le den una manita de como puede solito arreglarselas, como eres de bovino milenario, no puedo decir que solo comentas para ganar en el contador!!!, bueno no tengo pensado dar normas de conductas, solo doy un consejo, que mas bien es una forma de pensar, que si uno va a comentar con el fin de no ayudar a nadie seria mejor que no lo haga(panpoco pretendo decirte que hacer....cumpa bakuno),............................................................................................por otro lado, con lo poco que se en programacion pienso que lo que yo haria es, empezar a darle reglas(tampoco quiero hablar de programacion logica), con darle reglas me refiero a que crees una funcion que dentro recorra el arreglo ingresado, y busque carateristicas en el arreglo y que luego lo corte y las mueste, con caracteristicas me refiero a: que si es que busque el caso mas extremo para cortar la palabra comenzando por C+V+C+C...... mostrar solo las 3 primeras letras, luego continuas bucando ese tipo de ocurrencias, continuas con C+V+C+V separas en C+V y lo muestras..........poco a poco ir construyendo las reglas pos, propongo que empieces colocandolo dentro de if y for pequeños que no creo que pasaran de 4 repeticiones........hasta donde se me ocurre ese podria ser un camino, no he buscado si hay una libreria que me solucione las cosas......sera motivo de visitar SanGoogle, pero termines tu trabajo y puedas colocarlo en un mensaje en este mismo post para chekarlo a ver que tal te fue, si no me entendiste en algo, mandame un MP para ver en que forma te puedo ayudar.....Salu2 suerte!
 

menxo

Bovino adolescente
#6
Gracias a los dos, excepto el primero jajaja que no capto. Pero bueno, tratare de ver si entiendo lo que me propones, cualquier cosa, MP. Gracias de antemano.
 
#7
Ok. debes de usar praticamente la libreria string
y la logica seria asi consonante con volca cuales con cuales
sa,se,si,so,su
ma,me,mi,mo,mu
silabas primarias
silabas compuestas
heroe
una basica he y una compuesta basica ro y queda solita e por lo tanto es una.

apocalipsis a po ca lip sis aqui ya usas las tecnicas de silabacion. :chavo:
 

menxo

Bovino adolescente
#8
Ok. debes de usar praticamente la libreria string
y la logica seria asi consonante con volca cuales con cuales
sa,se,si,so,su
ma,me,mi,mo,mu
silabas primarias
silabas compuestas
heroe
una basica he y una compuesta basica ro y queda solita e por lo tanto es una.

apocalipsis a po ca lip sis aqui ya usas las tecnicas de silabacion. :chavo:
Ok, creo que si te entiendo. Por ejemplo la palabra CIUDAD se separa CIU DAD, como tu describes, el programa la separaria CI U DAD. Como podria corregir eso?
 

Muertoz

Bovino adolescente
#10
no sé si sea lo correcto:

Código:
main()
{
        vector v;
        separadorSilabas(palabra, v, i, new Vector())
        imprimir(v)
}

separadorSilabas(palabra, v, i, tPalabra)
{    
      si(i==ultimaLetra)
      return;
      sino(tPalabra+palabra[i+1] == silabaFinal)
             v.add(tPalabra)
      sino(tPalabra+palabra[i+1] == puedeSerOtraSilaba)
             separadorSilabas(palabra, v, i + 1, tPalabra + palabra[i+1])
}
En mi cabeza tiene más sentido :D
 

menxo

Bovino adolescente
#11
no sé si sea lo correcto:

Código:
main()
{
        vector v;
        separadorSilabas(palabra, v, i, new Vector())
        imprimir(v)
}

separadorSilabas(palabra, v, i, tPalabra)
{    
      si(i==ultimaLetra)
      return;
      sino(tPalabra+palabra[i+1] == silabaFinal)
             v.add(tPalabra)
      sino(tPalabra+palabra[i+1] == puedeSerOtraSilaba)
             separadorSilabas(palabra, v, i + 1, tPalabra + palabra[i+1])
}
En mi cabeza tiene más sentido :D
No entiendo el codigo, pero lo checare mas detenidamente. Gracias a todos por sus comentarios
 
Arriba