Título: letras iniciales de una oracion en mayuscula Publicado por: bobitttyy en 11 Abril 2015, 09:50 am si tengo la siguiente oración:
*esto es un mensaje y quiero cambiarlo a : *Esto Es Un Mensaje Código: #include <stdio.h> pero esto solo me funciona solo para un espacio en blanco entre palabra y palabra. Yo quiero un metodo mas general.....con mas espacios en blanco, por ejemplo: esto___es__un____mensaje Esto___Es__Un____Mensaje Título: Re: letras iniciales de una oracion en mayuscula Publicado por: Stakewinner00 en 11 Abril 2015, 10:17 am Podrías meter que en vez de
Citar if (cad== ' ' || cad== '.' || cad== ',') , comprobar si es una letra o un número, y si no es ni una letra ni un número supones que es un "espacio" o lo que sea. Título: Re: letras iniciales de una oracion en mayuscula Publicado por: rarrav26 en 11 Abril 2015, 13:57 pm Proba cambiando
esto: Código: gets(cad); Código: cin.getline(cad,80); Título: Re: letras iniciales de una oracion en mayuscula Publicado por: rir3760 en 11 Abril 2015, 17:42 pm Yo quiero un metodo mas general.....con mas espacios en blanco Lo primero que debes hacer es enfocarte en la biblioteca estándar de C++ evitando el uso de funciones como gets, mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html).En cuanto al programa basta con utilizar una bandera de estado la cual pones a uno (o true) al encontrar un carácter parte de una palabra y cero (o false) cuando este sea un separador. Justo cuando la pones a uno cambias el carácter a mayúsculas (casi lo mismo que uno de los ejemplos de K&R). Para darte una idea un programa en C con esa aproximación es: Código
Toma la idea y adecuala a C++. Por ejemplo puedes empezar evitando el array utilizando en su lugar un objeto de la clase string (http://www.cplusplus.com/reference/string/string/) y para leer la linea y almacenarla en ella utilizas la función getline (http://www.cplusplus.com/reference/string/string/getline/). Un saludo Título: Re: letras iniciales de una oracion en mayuscula Publicado por: Blaster en 11 Abril 2015, 18:32 pm La aproximación que expones, presenta un comportamiento indefinido debido a que estas modificando un puntero que apunta a una cadena literal (linea 19)
Un Saludo Título: Re: letras iniciales de una oracion en mayuscula Publicado por: rir3760 en 11 Abril 2015, 19:48 pm La aproximación que expones, presenta un comportamiento indefinido debido a que estas modificando un puntero que apunta a una cadena literal (linea 19) Ouch! Gracias por indicarlo, ya actualice el programa.Un saludo |