[C con Clase] funcion vocales y consonante listas ???
Steven R. Davidson
vze266ft en verizon.net
Jue Dic 7 04:01:56 CET 2006
Hola Alain,
alain rios correa wrote:
>
>
> bueno hola a todos quisiera saber si me pueden ayudar, el ejercicio dice
> asi:
>
> en la lista 1 se encuentra la palabra : ESTERNOCLEIDOMASTOIDEO
>
> hacer una funcion que en la lista 2 me muestre las vocales que se
> encuentran en dicha palabra y cuantas veces esta cada vocal
>
> ejemplo: la vocal = e se encuentra 4 veces
>
> y en la lista 3 hacer lo mismo pero con las consonantes de la misma palabra:
>
> ejemplo : la consonante = t se encuentra 2 veces..
>
Rodolfo ya te ha contestado, pero quería ofrecerte otra forma de
resolver el problema.
Lo que te interesa hacer es lo que se llama un histograma; o sea, una
tabla de frecuencias. Esta tabla va guardando las veces que ocurre o
aparece un valor a examinar en particular. En tu caso, te interesa saber
la cantidad de vocales y consonantes en una cadena. Para esto, crea un
array de 'unsigned int' inicializado a 0 (cero). Sin embargo, el
enunciado dice que debes usar dos listas. Esto complica un poco más las
cosas, pero si no tienes opción, entonces tendrás que creas dos arrays
para representar las cantidades encontradas: uno para las vocales y otro
para las consonantes. Los índices de los arrays indican las letras y los
elementos de tales índices contienen las cantidades. Por ejemplo,
int consonantes[20] = {0}; // Sin contar la elle ni la eñe
int vocales[5] = {0};
vocales[4]++; // Incrementamos la vocal 'u'
consonantes[4]++; // Incrementamos la consonante 'g'
Al recorrer la cadena, vamos incrementando el valor de la letra
procesada. Por ejemplo,
'E' => vocales[1]++
'S' => consonantes[15]++
'T' => consonantes[16]++
'E' => vocales[1]++
Y así sucesivamente.
Al final del recorrido, obtendrás las cantidades de cada vocal y
consonante. Si las cantidades son 0 (cero), entonces tal letra no existe
en la cadena. De esta manera, sólo tienes que recorrer la cadena una
sola vez.
Espero que esto te ayude.
Steven
Más información sobre la lista de distribución Cconclase