Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: sabar en 2 Diciembre 2014, 02:21 am



Título: arreglo en mayusculas y sin espacios c++
Publicado por: sabar en 2 Diciembre 2014, 02:21 am
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
  1. #include<iostream>
  2. #include<ctype.h>
  3. #include<string.h>
  4. #include<stdio.h>
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9.           char palabra[200];
  10.           int i,j;
  11.           cout<<"ingrese la frase: ";
  12.           gets(palabra);
  13.           for(i=0; palabra[i] != 0;++i)//esto me debe quitar los espacios
  14.               if(palabra[i] != 32){
  15.                for(i= 0; palabra[i]; j++)
  16.                palabra[i] = toupper(palabra[i]);//se supone que esto me bota la frase en mayusculas
  17.                   cout<<palabra[i];
  18.                }
  19.  
  20. }
  21.  
  22.  


Título: Re: arreglo en mayusculas y sin espacios c++
Publicado por: rir3760 en 2 Diciembre 2014, 02:37 am
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
  1. for (i = 0; palabra[i]; j++) // <==
  2.   // ...

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

Un saludo


Título: Re: arreglo en mayusculas y sin espacios c++
Publicado por: sabar en 2 Diciembre 2014, 13:39 pm
Código:
[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


Título: Re: arreglo en mayusculas y sin espacios c++
Publicado por: eferion en 2 Diciembre 2014, 13:42 pm
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


Título: Re: arreglo en mayusculas y sin espacios c++
Publicado por: Orubatosu en 2 Diciembre 2014, 14:02 pm
Código:
[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.