Autor
|
Tema: convertir minúscula a mayúscula (Leído 48,343 veces)
|
m@o_614
Desconectado
Mensajes: 389
|
Alguien sabe de alguna manera de convertir de minúscula a mayúscula sin la necesidad de rstarle - 32, es que tengo un problema que me pide que le ingrese una letra, si la letra es mayúscula lo dejo así, pero si la letra es minúscula tengo que hacer que el código me la reconozca como si ffuera mayúscula gracias
|
|
|
En línea
|
|
|
|
85
|
Si estás de acuerdo en usar la librería standart: http://es.wikipedia.org/wiki/Ctype.htenés una lista como la siguiente para hacer conversiones de ese tipo: tolower toupper strlwr strupper islower isupper etc Eso en primer lugar, ahora sino querés usar el código ASCII podés hacer algo más costoso pero efectivo. Osea que tu cadena va a ser examinada char por char para comprobar que se trate de una letra, ya sea mayúscula o minúscula. No se si es lo que pedís realmente, espero haberte ayudado bool SonLetras(const char* buf) { #define MAX_ALFA 53 const char alfabetico[] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',0}; int ok=0; int len = strlen(buf); for(int i=0; i<len; i++){ for(int j=0; j<MAX_ALFA; j++){ if(buf[i]==alfabetico[j]){ ok++; break; }}} if(ok==len) return true; return false; }
|
|
|
En línea
|
|
|
|
MeCraniDOS
Desconectado
Mensajes: 337
Sr. Glass
|
De minúscula a mayuscula:#include <stdio.h> #include <ctype.h> int main() { char cadena[50]; int i; printf("\nEscribe un letra o frase: "); scanf("%s", &cadena); for(i = 0; cadena[i]; i++) cadena[i] = toupper(cadena[i]); printf("\n%s\n", cadena); fflush(stdin); printf("\nPresiona Intro para finalizar..."); getchar(); }
De mayúscula a minuscula:#include <stdio.h> #include <ctype.h> int main() { char cadena[50]; int i; printf("\nEscribe un letra o frase: "); scanf("%s", &cadena); for(i = 0; cadena[i]; i++) cadena[i] = tolower(cadena[i]); printf("\n%s\n", cadena); fflush(stdin); printf("\nPresiona Intro para finalizar..."); getchar(); }
Espero que te sirva
Saludos.
|
|
|
En línea
|
"La física es el sistema operativo del Universo" -- Steven R Garman
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Alguien sabe de alguna manera de convertir de minúscula a mayúscula sin la necesidad de rstarle - 32, es que tengo un problema que me pide que le ingrese una letra, si la letra es mayúscula lo dejo así, pero si la letra es minúscula tengo que hacer que el código me la reconozca como si ffuera mayúscula .................................................................................
¿Qué problema tienes en restarle 32?. Si fuera una frase vale, pero para una letra es lo más cómodo, sin librerías ni funciones:#include <stdio.h> int main(){ char ch; printf("\nEscribe una letra: "); ch=getchar (); if (ch>97 || ch<122) ch-=32; printf("\n%c\n", ch); return 0; }
Saluditos!.
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Algunos comentarios sobre la función: bool SonLetras(const char* buf) { #define MAX_ALFA 53 const char alfabetico[] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',0}; int ok=0; for(int i=0; i<len; i++){ for(int j=0; j<MAX_ALFA; j++){ if(buf[i]==alfabetico[j]){ ok++; break; }}} if(ok==len) return true; return false; }
* No es una buena idea utilizar una macro como esta: #define MAX_ALFA 53
Porque si nos equivocamos en la macro o en la lista de elementos del array la función ya no tendría el comportamiento esperado. Es mejor delegar la tarea al compilador utilizando el operador sizeof. * No es necesario llamar a la función strlen ya que el final de la cadena se puede conocer al comparar al carácter siendo procesado con '\0'. * Para evitar el condicional dentro del bucle interno se puede utilizar un centinela colocando el carácter a buscar en la ultima posición del array (la ocupada por el '\0'). * Si el objetivo es retornar verdadero solo si todos los caracteres son alfabéticos no se debe verificar toda la cadena una vez se encuentre un carácter que no cumpla esa condición. Con los cambios: bool SonLetras(const char *str) { char abc[] = { "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" }; size_t num_chars = sizeof abc - 1; size_t i; size_t j; for (i = 0; str[i] != '\0'; i++){ abc[num_chars] = str[i]; for (j = 0; abc[j] != str[i]; j++) ; if (j == num_chars) return false; } return true; }
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
Stakewinner00
|
jugando con los creo que podrías hacer algo como #define A a #define B b #define C c o algo así sin necesidad de mucho codigo.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
jugando con los creo que podrías hacer algo como #define A a #define B b #define C c o algo así sin necesidad de mucho codigo. Muy bueno eso de sin necesidad de mucho código Supongo que te ha pillado en un momento "espeso" querido Stakewinner00 . Saluditos!.
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
Son tan divertidos jugando con los creo que podrías hacer algo como #define A a #define B b #define C c o algo así sin necesidad de mucho codigo.
|
|
|
En línea
|
|
|
|
Stakewinner00
|
Retiro todo lo dicho, ahora ya con la mente más lúcida vi que no puede funcionar (como mínimo de forma sencilla).
|
|
|
En línea
|
|
|
|
Josemanu90
Desconectado
Mensajes: 2
|
si es solo una letra como seria?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
convertir txt a mayuscula minuscula mayuscuala...
Programación Visual Basic
|
4D1cTo
|
4
|
6,027
|
18 Junio 2006, 15:10 pm
por Hadess_inf
|
|
|
Convertir cadena minuscula en mayuscula
Programación C/C++
|
delirio
|
3
|
13,810
|
28 Noviembre 2010, 04:36 am
por delirio
|
|
|
De minúscula a mayúscula a nivel de bits en lenguaje C.
« 1 2 3 4 »
Programación C/C++
|
DanielPy
|
32
|
17,189
|
4 Enero 2014, 19:12 pm
por leosansan
|
|
|
Convertir ñ de minuscula a mayuscula y viceversa
Programación C/C++
|
MaxVC98
|
1
|
2,646
|
12 Marzo 2016, 22:04 pm
por Stakewinner00
|
|
|
convertir todo a mayuscula, 1ra palabra en mayuscula y concatenar si no esta vacio
Scripting
|
Rosa1010
|
1
|
13,476
|
29 Enero 2024, 08:04 am
por Tachikomaia
|
|