Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: scc2810 en 5 Marzo 2017, 10:08 am



Título: contar numero de letras en una palabra de un arreglo.
Publicado por: scc2810 en 5 Marzo 2017, 10:08 am
Me han pedido un programa en el que tenga un arreglo inicializado con una oracion,el objetivo del programa es que cuente las palabras que esten formadaspor un  numero diferente  de 4
por ejemplo: "Hola mundo"
el programa me deberia arrojar 1 ya que 'mundo' es diferente de 4.
Soy nuevo en esto,me ayudaria muchisimo que me den ideas.

 


Título: Re: contar numero de letras en una palabra de un arreglo.
Publicado por: integeroverflow en 6 Marzo 2017, 00:18 am
tenes que hacer un bucle que recorra caracter por caracter la cadena hasta llegar al final (caracter nulo, 0x00 o '\0').

por cada caracter que analizes, lo comparas con un espacio, o sea ' '. este caracter nos va a indicar el final de una palabra.

lo que tenes que hacer es llevar dos contadores, uno para la cantidad de palabras desiguales a 4, y otro para la cantidad de caracteres que tiene la palabra acutal. ademas, si queres ignorar multiples espacios, (ejemplo: "hola    mundo asd"), deberias guardar el ultimo caracter analizado y compararlo con el actual en caso de que sea un espacio, para ignorarlo.

cuando se encuentre un espacio, tomas el contador de caracteres y te fijas si es igual a 4. si no lo es, sumas uno al contador de palabras, caso contrario nada. en ambos casos deberas reiniciar el contador de caracteres para que este en 0 para la proxima palabra.

como dijimos que un espacio va a indicar el final de una palabra, es posible que en la ultima palabra ese espacio no este, entonces deberas chequear eso tambien. al final de la funcion, si el ultimo caracter es un espacio, retornas el numero de palabras normalmente. en caso de que no sea un espacio, te fijas si la ultima palabra es desigual a 4, y si es asi retornas numero de palabras mas uno, caso contrario numero de palabras normalmente.