SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Xiskete en Martes 15 de Diciembre de 2009, 12:00

Título: Convertir cadenas de texto
Publicado por: Xiskete en Martes 15 de Diciembre de 2009, 12:00
Hola soy nuevo en este foro y me lo han recomendado porque dicen que aqui encontrare respuesta a todas mis dudas. Me interesa hacer un programa que haga lo mencionado abajo en C++. El programa consiste en que introduces una frase y luego sale el menu y al apretar una de las opciones que salen abajo de este parrafo Convertira la frase tal y como pone abajo,

Ejemplo:
Introduzca frase:
HoLA mE llamo TONI gelabert(Aqui introduzco la frase como me de la gana)

Menu
Sale un menu y podemos elegir

Las funciones que quiero que haga:
Convertir a formato frase:
Hola me llamo toni gelabert
· Convertir a format título:
Hola Me Llamo Toni Gelabert
· Convertir a formato título inverso:
hOLA mE lLAMO tONI gELABERT

Tengo la funcion que convierte todo en mayusculas o todo en minusculas, pero como puedo hacer para elegir que cambie solo ciertas letras tal y como sale en el ejemplo?

Muchisimas gracias a todas vuestra futuras aportaciones


resuelto se puede borrar el tema
Título: Re: Convertir cadenas de texto
Publicado por: sanlegas2000 en Miércoles 30 de Diciembre de 2009, 20:37
bueno ya lo resolviste seria bueno que pongas la solucion, por miestras dejo la mia. para convertir de minus a mayus ay una funcion, igual de minus a mayus.
ahora como cambiar de mayus a minu.
if(A[f]>=65 && A[f]<=90)// si el caracter es mayuscula
A[f]=A[f]+32;
else
         {
            
            B[f]=A[f]-32;
         }
// si no quieres decir es que minus entonces se le resta
Título: Re: Convertir cadenas de texto
Publicado por: undertakos en Jueves 31 de Diciembre de 2009, 06:22
Citar
#include <stdio.h>
#include <ctype.h> //<---aqui se encuentran las funciones toupper y tolower
 
int main()
{
   char cadena[] = "ESTO ES UNA CADENA DE PRUEBA";
   int i;
   
   for(i = 0; cadena; i++)
      cadena = tolower(cadena); //<--convierte a minusculas la cadena

   printf("%sn", cadena); //<---muestra por pantalla la cadena
   return 0;
}


en la primera haces  que tu cadena en tu posicion 1 lo pase a mayusculas y las demas a minusculas
a segunda puedes en un ciclo pregutar en que posicion estas ubicado en la cadena y si estas en un espacio el siguiente lugar le aplicas el de mayuscula
y el tercero pues ami se me ocurre de una manera muy complicada con muchos ifs pero no creo que sea la mas adecuada

haber que dicen los demas :P