arreglo en mayusculas y sin espacios c++

Iniciado por sabar, 2 Diciembre 2014, 02:21 AM

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

sabar

tengo un problema en el cual me piden que al ingresar una frase yo devuelva(imprima en pantalla) la frase en mayúsculas y sin espacios pero la maquina se queda hay pensando y no avanza
Código (cpp) [Seleccionar]
#include<iostream>
#include<ctype.h>
#include<string.h>
#include<stdio.h>

using namespace std;

int main(){
          char palabra[200];
          int i,j;
          cout<<"ingrese la frase: ";
          gets(palabra);
          for(i=0; palabra[i] != 0;++i)//esto me debe quitar los espacios
              if(palabra[i] != 32){
               for(i= 0; palabra[i]; j++)
               palabra[i] = toupper(palabra[i]);//se supone que esto me bota la frase en mayusculas
                  cout<<palabra[i];
               }

}


rir3760

Si no tienes un curso o libro de calidad sobre C++ deberías conseguir uno, si necesitas de recomendaciones basta con utilizar el motor de búsqueda de los foros.

Tu programa termina sin responder porque el bucle interno es infinito ya que en ningún momento modificas el valor de la variable "i":
Código (cpp) [Seleccionar]
for (i = 0; palabra[i]; j++) // <==
   // ...


Para imprimir los caracteres en mayúsculas ignorando los espacios basta con un solo bucle:
Código (cpp) [Seleccionar]
for (i = 0; palabra[i] != '\0'; ++i)
   if (palabra[i] != ' ')
      cout << char(toupper(palabra[i]));
cout << endl;


Un saludo
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

sabar

#2
[quote author=rir3760 link=topic=425721.msg1981416#msg1981416 date=1417484253]
Si no tienes un curso o libro de calidad sobre C++ deberías conseguir uno, si necesitas de recomendaciones basta con utilizar el motor de búsqueda de los foros.


gracias por la ayuda y sabes de un buen libro para poder aprender mas de c++, que no sea tan dificil de entender gracias

eferion

Aparte de lo dicho por rir3760, debes plantearte también quitarte el miedo y empezar a depurar tus programas. Al principio puede parecer complicado, pero es una herramienta tremendamente útil a la hora de localizar problemas en el código.

PD.: deberías revisar el uso que haces de las variables "i" y "j"... especialmente en el segundo bucle

Orubatosu

Cita de: sabar en  2 Diciembre 2014, 13:39 PM
[quote author=rir3760 link=topic=425721.msg1981416#msg1981416 date=1417484253]
Si no tienes un curso o libro de calidad sobre C++ deberías conseguir uno, si necesitas de recomendaciones basta con utilizar el motor de búsqueda de los foros.


gracias por la ayuda y sabes de un buen libro para poder aprender mas de c++, que no sea tan dificil de entender gracias

Prueba http://www.minidosis.org/#/

Fácil con ganas, si no aprendes con eso, es que no quieres.
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998