Título: Recibir un String en uppercase y devolverlo lowercase y viceversa Publicado por: sebapoli00 en 25 Marzo 2019, 23:01 pm buenas, tengo un problema que no logro resolver, yo recibo un string y esta en lowercase quiero devolverlo en uppercase y si recibo en uppercase devolverlo en lowercase pero sin usar las funciones de c++ toUpper o toLower.
lo he intentado hacer con el codigo ascii pero no lo consigo. Ejemplo 1 Entrada: "hola MUNDO" Salida: "HOLA mundo" Ejemplo 2 Entrada: "EjErCiCiO C++" Salido: "eJeRcIcIo c++" */ la firma del metodo: char* invertirFrase (char* frase){ } desde ya muchas gracias. Título: Re: Recibir un String en uppercase y devolverlo lowercase y viceversa Publicado por: CalgaryCorpus en 26 Marzo 2019, 09:44 am compara contra 'a' y 'z' o contra 'A' y 'Z' y si resulta cierto alguna de las comparaciones, convierte la letra en su "contrario" primero restandole la diferencia contra la 'a' o la 'A' mas cercana y sumandole esa diferencia a la 'a' o 'A', la que sea contraria.
o sea si la letra esta entre 'a' y 'z', la conviertes en su equivalente mayuscula haciendo mayuscula = 'A' + (letra - 'a') Si esta entre 'A' y 'Z' logica similar, te lo dejo propuesto. Título: Re: Recibir un String en uppercase y devolverlo lowercase y viceversa Publicado por: K-YreX en 26 Marzo 2019, 11:50 am Si quieres hacerlo usando alguna función predefinida, en la librería <cctype> (<ctype.h> para C) tienes dos funciones: <islower()> e <isupper()> que te indican si el caracter que le pasas está en mayúsculas o minúsculas. Pero el cambio de uno a otro lo tienes que hacer usando la idea de @CalgaryCorpus de todas formas.
Si no lo consigues puedes poner tu código (entre etiquetas) para que lo veamos y poder ayudarte. Suerte :-X Título: Re: Recibir un String en uppercase y devolverlo lowercase y viceversa Publicado por: sebapoli00 en 26 Marzo 2019, 18:56 pm lo he intentado como dices pero no ha funcionado, aclaro que es en c++
el siguiente codigo es lo que he intentado pero no ha funcionado char* invertirPalabra(char* palabra){ int tamano = longitud(palabra); char * palabra2 = palabra; for (int i = 0; i<tamano; i++) { if (int (palabra) >= 97 && int(palabra) <= 122) { palabra2 = 'A' + (int(palabra) - 'a'); } else if (int(palabra) >= 65 && int(palabra) <= 90) { palabra2 = 'a' + (int(palabra) - 'A'); } else { palabra2 = palabra; } } return palabra; } int longitud(char *cadena) { int i = 0; while (cadena != '\0') i++; return i; } Título: Re: Recibir un String en uppercase y devolverlo lowercase y viceversa Publicado por: Loretz en 26 Marzo 2019, 21:32 pm Un poco tarde, pero ...
Aprovechando la curiosidad de que en el sistema ASCII las mayúsculas y minúsculas difieren en el sexto bit (difieren en 32, el carácter ' ' espacio), se puede hacer: Código
Pero esto sólo vale para los caracteres ASCII desde la 'a' hasta la 'z' y desde la 'A' hasta la 'Z', peor no vale para las letras acentuadas o la eñe. Es sólo una curiosidad. Título: Re: Recibir un String en uppercase y devolverlo lowercase y viceversa Publicado por: K-YreX en 26 Marzo 2019, 21:55 pm lo he intentado como dices pero no ha funcionado, aclaro que es en c++ el siguiente codigo es lo que he intentado pero no ha funcionado char* invertirPalabra(char* palabra){ int tamano = longitud(palabra); char * palabra2 = palabra; for (int i = 0; i<tamano; i++) { if (int (palabra) >= 97 && int(palabra) <= 122) { palabra2 = 'A' + (int(palabra) - 'a'); } else if (int(palabra) >= 65 && int(palabra) <= 90) { palabra2 = 'a' + (int(palabra) - 'A'); } else { palabra2 = palabra; } } return palabra; } int longitud(char *cadena) { int i = 0; while (cadena != '\0') i++; return i; } Coloca el código entre etiquetas de código GeSHi (hay un desplegable encima del cuadro de texto)... Lo primero decir que no hace falta que lo pases a ASCII. Los operadores < y > se pueden aplicar directamente a una variable de tipo <char> Código
Supongo que quieres cambiar la que se pasa como parámetro, no crear una nueva no? Puedes usar el propio índice del <for> para recorrer toda la cadena y cambiar el valor que sea necesario sin usar punteros auxiliares. Suerte :rolleyes: Título: Re: Recibir un String en uppercase y devolverlo lowercase y viceversa Publicado por: sebapoli00 en 27 Marzo 2019, 22:03 pm Ya lo he resuelto ;)
adjunto como lo hice Código
|