• Viernes 8 de Noviembre de 2024, 21:44

Autor Tema:  Cambiar Mayusculas Minusculas  (Leído 4683 veces)

sagoher

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Cambiar Mayusculas Minusculas
« en: Sábado 1 de Marzo de 2008, 15:41 »
0
Hola! y gracias de antemano! os cuento, tengo un problema con un programiya que estoy haciendo, se trata de cambiar una cadena de caracteres de minusculas a mayusculas teniendo en cuenta la ñ, y es aqui donde surge mi problema, os copio aqui el codigo por si alguien puede ayudarme:

#include<stdio.h>
#include<conio.h>

   void minmay(unsigned char vector[]);

    void main()
   {
      char cadena[100];
      printf("Introduce una cadena:");
      gets(cadena);
      minmay(cadena); /* Llama a la funcion */
      printf ("En Mayusculas: %s\n", cadena);
      getch();
   }

    void minmay(unsigned char vector[])
   {
      int i;
      int desp='a'-'A';
      for (i=0;vector!='\0';++i)
      {
         if (vector=='ñ')
            vector='Ñ';
     
         if(vector>='a'&&vector<='z')
         {
            vector=vector-desp;
         }
      }
   
   }

gracias otra vez !!

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Cambiar Mayusculas Minusculas
« Respuesta #1 en: Sábado 1 de Marzo de 2008, 18:15 »
0
Bueno, pero ¿Cuál es el problema?
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

sagoher

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Cambiar Mayusculas Minusculas
« Respuesta #2 en: Sábado 1 de Marzo de 2008, 20:31 »
0
que no cambia la ñ de minuscula a mayuscula

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Cambiar Mayusculas Minusculas
« Respuesta #3 en: Domingo 2 de Marzo de 2008, 04:20 »
0
El problema tiene que ver con las codificaciones ASCII, que windows usa ISO 8859-1 y MS-DOS utiliza la pagina de codigos 437 u 850, entonces, si tu editas tu archivo en windows, el codigo ASCII en windows no coincide con el codigo en MS-DOS y viceversa.

Podrias probar comparandolo como si fuera un numero, en lugar de con una letra. El siguiente codigo funciono bien en mi windows, utilizando Code::Blocks/Mingw, tal vez funcione en el tuyo. Por cierto, no utilices la libreria conio de borland, no es portable.

Código: Text
  1.  
  2. #include&#60;stdio.h&#62;
  3.  
  4. void minmay(char vector[]);
  5.  
  6. int main()
  7. {
  8.     char cadena[100];
  9.     printf(&#34;Introduce una cadena:&#34;);
  10.     gets(cadena);
  11.     minmay(cadena); /* Llama a la funcion */
  12.     printf (&#34;En Mayusculas: %s&#092;n&#34;, cadena);
  13.     getchar();
  14.     return 0;
  15. }
  16.  
  17. void minmay(char vector[])
  18. {
  19.     int i;
  20.     int desp='a'-'A';
  21.  
  22.     for (i=0;vector[i]!='&#092;0';++i)
  23.     {
  24.         if (vector[i] == -92)
  25.         {
  26.             vector[i] = -91;
  27.         }
  28.  
  29.         if (vector[i]&#62;='a'&&vector[i]&#60;='z')
  30.         {
  31.             vector[i]=vector[i]-desp;
  32.         }
  33.     }
  34. }
  35.  
  36.  

Si necesitas sabes que numero coincide con que letra, podrias utilizar este pequeño ciclo.

Código: Text
  1.  
  2.     char j;
  3.     for (j = -128; j &#60;= 127; j++)
  4.     {
  5.         printf(&#34;%c = %d&#092;n&#34;, j, j);
  6.         if (j == 127)
  7.         break;
  8.     }
  9.  
  10.  

Saludos 8)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

floppy22

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Cambiar Mayusculas Minusculas
« Respuesta #4 en: Domingo 2 de Marzo de 2008, 04:25 »
0
te resolvieron tu problema...iba a aportar pero se me adelantaron... :o  :whistling:

sagoher

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Cambiar Mayusculas Minusculas
« Respuesta #5 en: Domingo 2 de Marzo de 2008, 12:16 »
0
funcionó perfectamente!! muchas gracias

crixxus

  • Nuevo Miembro
  • *
  • Mensajes: 19
  • Nacionalidad: co
    • Ver Perfil
Re: Cambiar Mayusculas Minusculas
« Respuesta #6 en: Lunes 7 de Marzo de 2011, 18:38 »
0
Gracias gente de solo codigo. Esa respuesta me ayudo con un ejercicio de la U  :beer: