Convertir cadena minuscula en mayuscula

Iniciado por delirio, 28 Noviembre 2010, 00:09 AM

0 Miembros y 1 Visitante están viendo este tema.

delirio

Hola gentita.........puxa perdonen la ingnorancia.....pero esq quiero su ayuda con mi codigo .........esq quiero convertir una cadena de caracteres de minusculas a mayusculas ...pero la cosa esq mi codigo solo hace eso para una palabra nomas...y no para una frase porque se cuelga el programa, es decir para los espacios es donde se cuelga .......como stoy trabajando con su codigo ASCII de cada palabra y la diferencia entre cada palabra de minuscula con su respectiva mayuscula es de 32, entonces le resto 32 a esa palabra minuscula y me imprime en pantalla en mayuscula........pero se da que el codigo ASCII del ESPACIO es 32 y entonces ahi sta el problema .....no sé como restringirlo.........como stoy pollo en esto de programacion tovia..........espero me ayuden...............HEEEEELP!!!


Código (cpp) [Seleccionar]
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>

using namespace std;

int main()
{
   char cadena[50];
   int i=0;
   int n;
   
   cout<<"Ingrese palabra: ";
   gets(cadena);
   
/*-------------------------------------------------------------*/  
   while(cadena[i] != '\0')
   {
     if(cadena[i]>=97 && cadena[i]<=122)    // a=65  y   z=122  ( en codigo Ascii)
      {                                    
       cadena[i]=cadena[i]-32;                
       i++;
      }
   
   }
   cout<<"\n La palabra convertido en mayusculas es: ";
   cout<<cadena;
/*--------------------------------------------------------------*/    
   
system("PAUSE>nul");
return 0;
}



BlackZeroX

#2
saca  i++ de este trozo de codigo:

Código (cpp) [Seleccionar]

      if(cadena[i]>=97 && cadena[i]<=122)    // a=65  y   z=122  ( en codigo Ascii)
       {                                   
        cadena[i]=cadena[i]-32;                 
        i++;
       }


Código (cpp) [Seleccionar]

      if(cadena[i]>=97 && cadena[i]<=122)
        cadena[i]=cadena[i]-32;                 
      i++;


Código (cpp) [Seleccionar]


#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char cadena[]="InfrAngeluX-Soft\t->\t2010";
    unsigned int i = 0;
    int DifaA= (int)'a' - (int)'A';
    while(cadena[i] != '\0')
    {
      if( (int)cadena[i] >= (int)'a' && (int)cadena[i] <= (int)'z')
          cadena[i] -= DifaA;
      i++;
    }
    cout << cadena << endl;
    getwchar();
    return 1;
}



Sangriento Infierno Lunar!¡.
The Dark Shadow is my passion.

delirio

MUXAS GRACIAS GENTE.......JAJJAJA Q ESTUPIDO ERA PA KITARLE LAS LLAVES DESPUES DE EL    if   ....... :xD

osea kedaba asi:

Código (cpp) [Seleccionar]
while(cadena[i] != '\0')
    {
      if(cadena[i]>=97 && cadena[i]<=122)    // a=65  y   z=122  ( en codigo Ascii)
        cadena[i]=cadena[i]-32;                 
        i++;                   
    }