elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Convertir una cadena en Mayusculas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Convertir una cadena en Mayusculas  (Leído 2,548 veces)
SDCC

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Convertir una cadena en Mayusculas
« en: 1 Febrero 2018, 23:51 pm »

Buenos dias a todos , hoy mientras probaba la funcion toupper encontrada en la libreria ctype.h me surgio la necesidad de convertir una cadena en mayusculas para poderla comparar con una frase ya predeterminada , he visto que la funcion toupper solo me funciona a la hora de convertir un solo caracter , pero a la hora de querer convertir toda una cadena en mayusculas con esta funcion no me deja , alguien sabe si la unica opcion para convertir toda la cadena en mayusculas es ir convirtiendo caracter por caracter en mayusculas?, es decir:
Código
  1.  
  2. char c1[4];
  3. printf("Ingresa una frase "); \*Ingresa "hola" en minusculas *\
  4. \*Converti en Mayusculas*\
  5. for (int j=0;j<4;j++){
  6. c1[j]=toupper(c1[j]);
  7.                               }
  8.  
  9.  
O se podria realizar con ayuda de alguna funcion de manera que se transformara toda la cadena en mayuscula en un solo paso.

NOTA: ESTE ES EL PROGRAMA QUE INTENTO REALIZAR , LO UNICO QUE QUISIERA MODIFICAR ES QUE SI LA FRASE SE ESCRIBE EN MINUSCULAS SE CONVIERTA A MAYUSCULAS PARA QUE SE PUEDA VERIFICAR CON LA FRASE.
Código
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5.  
  6. int main(){
  7. char c1[]="TIENES", c2[]="QUE SER", c3[]="INVITADO", c4[]="PARA", c5[]="INGRESAR", cE[20],band=0;
  8.  
  9.  
  10. printf("Este es un programa que se encarga de verificar 5 claves para poder entrar a una fiesta\nIngresa la primera clave\n");
  11. scanf("%s",cE);
  12.  
  13. if (strcmp(c1,cE)==0){
  14. printf("Ingresa la segunda clave\n");
  15. gets(cE);
  16.  
  17.  
  18. if(strcmp(c2,cE)==0){
  19. printf("Ingresa la tercera clave\n");
  20. scanf("%s",(cE));
  21.  
  22.  
  23. if(strcmp(c3,cE)==0){
  24. printf("Ingresa la cuarta clave\n");\
  25. scanf("%s",cE);
  26.  
  27.  
  28. if(strcmp(c4,cE)==0){
  29. printf("Ingresa la quinta clave\n");
  30. scanf("%s",cE);
  31.  
  32.  
  33. if(strcmp(c5,cE)==0){
  34. printf("BIENVENIDO A LA FIESTA\n");
  35. band=1;
  36. }
  37. }
  38. }
  39. }
  40. }
  41. if(band==0)
  42. printf("TE EQUIVOCASTE DE FIESTA\n");
  43.  
  44. }


« Última modificación: 2 Febrero 2018, 00:02 am por SDCC » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Convertir una cadena en Mayusculas
« Respuesta #1 en: 2 Febrero 2018, 09:38 am »

Tiene que ser carácter a carácter. Si quieres hacerlo de una vez genera una función que tome dicha cadena y pase toupper carácter a carácter. Al regresar tendrás tu cadena en mayúsculas.

Por cierto, para guardar "hola" necesitas un array de 5 caracteres. Acuérdate que toda cadena tiene un carácter NUL ('\0') al final para marcar el fin de ésta.


En línea

dijsktra

Desconectado Desconectado

Mensajes: 110


Mr Edsger Dijsktra (Tribute to)


Ver Perfil
Re: Convertir una cadena en Mayusculas
« Respuesta #2 en: 2 Febrero 2018, 12:06 pm »

Esta solucion es mas general. Y segura

Código
  1.  
  2. char w[]=...
  3. for( ; *w ; w++) *w=toupper(*w);
  4.  

Dentro de una rutina...

Código
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. char *toupper_w(char *w)
  5. {
  6.  char *c=w;
  7.  for( ; *w ; w++) *w=toupper(*w);
  8.  return (w=c);
  9. }
  10.  
  11.  
  12. int main(int argc, char *args[])
  13. {
  14.  char w[512];
  15.  while (scanf("%s",w)!=EOF)
  16.    printf("%s \n",toupper_w(w));
  17.  return 0;
  18. }


Da esta salida
Código:
La
LA
Estacion
ESTACION
de
DE
SERRRvicio
SERRRVICIO




« Última modificación: 3 Febrero 2018, 12:34 pm por dijsktra » En línea

Si la depuración es el proceso de eliminar fallos en el software, entonces programar debe ser el proceso de ponerlos dentro. (Edsger Dijsktra)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Convertir un numero a cadena...
Java
Sk9ITk5Z 5 6,584 Último mensaje 18 Mayo 2008, 03:17 am
por sapito169
Cómo convertir mayúsculas a minúsculas y viceversa en Batch. Ayuda!!
Scripting
<ИΘZIЭ(ŦB> 3 10,147 Último mensaje 11 Septiembre 2009, 23:15 pm
por <ИΘZIЭ(ŦB>
Convertir cada caracter de una cadena en una cadena independiente [SOLUCIONADO]
Programación C/C++
jazx 6 4,278 Último mensaje 12 Mayo 2015, 03:56 am
por x64core
Convertir mayusculas a minusculas en MIPS
ASM
SixtyGravy0 1 4,576 Último mensaje 25 Octubre 2015, 14:24 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines