Foros del Web » Programación para mayores de 30 ;) » C/C++ »

necesito ayuda con un ejercicio de c++

Estas en el tema de necesito ayuda con un ejercicio de c++ en el foro de C/C++ en Foros del Web. Hola como estan, tengo una gran duda, me han pedido un programa que solicte una cadena pero que en la pantalla muestre solo la primera ...
  #1 (permalink)  
Antiguo 04/10/2008, 17:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación necesito ayuda con un ejercicio de c++

Hola como estan, tengo una gran duda, me han pedido un programa que solicte una cadena pero que en la pantalla muestre solo la primera palabra de la cadena

ejem: HOLA A TODOS = HOLA

no tengo idea como hacerla, porfavor ayudenme que soy principiante en el c++

saludos y espero sus respuestas
  #2 (permalink)  
Antiguo 04/10/2008, 18:57
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: necesito ayuda con un ejercicio de c++

decinos en que forma esta depositada la cadena (int, double , etc...)

saludos
  #3 (permalink)  
Antiguo 04/10/2008, 19:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: necesito ayuda con un ejercicio de c++

hola pues me supongo lo que se usa para las cadenas un "char"

Última edición por fma4577; 04/10/2008 a las 19:25
  #4 (permalink)  
Antiguo 06/10/2008, 11:50
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: necesito ayuda con un ejercicio de c++

Busca el espacio (strchr) y de haberlo reemplazalo por el terminador de cadena (0).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 07/10/2008, 10:46
 
Fecha de Ingreso: agosto-2008
Ubicación: Mi casa!!! Perú-Aqp
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: necesito ayuda con un ejercicio de c++

hola bueno solo recorres la cadena hasta q encuentre un espacio
algo asi
while((*p)!=' ')// mientras el contenido d p sea diferente a un espacio
{
cout<<(*p);//imprimes
p++;//haces q el puntero avanc
}
saludos espero te sirva!
  #6 (permalink)  
Antiguo 07/10/2008, 10:54
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: necesito ayuda con un ejercicio de c++

zare: si no hay un espacio en la cadena ese codigo no es correcto.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 07/10/2008, 12:39
Avatar de princesa_him  
Fecha de Ingreso: octubre-2008
Mensajes: 7
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación Respuesta: necesito ayuda con un ejercicio de c++

Pero en una cadena siempre hay espacios, esta bien lo que dijo Zare... y si es que no los hay... ps es obvio q te retornara toda la palabra, sino como presumes, que sepa el compilador... cada palabra... osea entiendes a lo que me voy... no?
Bueno cuando lo hallas terminado... nos dices ps... y si aun no te sale... ps mandanos lo que hiciste, y nosotros te lo completamos...
!!!
bueno yo tb toy recien aprendiendo en la u, y se que causa muchos problemas solo hay q saber pensar... jjiji ... besitos
  #8 (permalink)  
Antiguo 07/10/2008, 13:14
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: necesito ayuda con un ejercicio de c++

No, bajo ningun concepto hay siempre un espacio en una cadena y no es correcto el codigo cuando no lo hay ya que continua leyendo sobre memoria indefinida y escribiendo lo que haya en la misma.

¿No es mas facil probarlo acaso? Especialmente si recien estas aprendiendo y sos una newbie en este foro.

Código:
//  char *p = "hola"; //cadena literal

char in[80]; //es solo un ejemplo por supuesto
cin >> in;
char *p = (char*)&in;
while((*p)!=' ')// mientras el contenido d p sea diferente a un espacio
{
//if (!*p) { break; } //con esto POR EJEMPLO se soluciona el problema
cout<<(*p);//imprimes
p++;//haces q el puntero avanc
}
}
No se que esperas que sepa el compilador (en tiempo de compilacion justamente) de una cadena que vaya a escribir un usuario en tiempo de ejecucion.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #9 (permalink)  
Antiguo 07/10/2008, 14:42
 
Fecha de Ingreso: agosto-2008
Ubicación: Mi casa!!! Perú-Aqp
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: necesito ayuda con un ejercicio de c++

plop,,, me olvide de eso peroooo.......ahi en tu funcion debes cambiar el cin por el gets es q el gets te recibe incluyendo los espacios...en cambio el cin solo te recibe la cadena hasta q encuentra un espacio .....
ya acomode el codigo
aqui se los pongo...ya funciona para el otro caso

void misterio(char *p)
{

while((*p)!=' ')
{
if (!*p)
{
break;
}
cout<<(*p);
p++;
}
cout<<(*p)<<endl;


}

int main()
{

char in[80];
cout<<"ingrese cadena"<<endl;
gets(in);//recibes con esto si no de nada serviria tu funcion
misterio(in);

}
//en el q pusist al compilarlo imprime unos simbolos despues de la palabra!!!
//saludos!!!
  #10 (permalink)  
Antiguo 07/10/2008, 14:44
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: necesito ayuda con un ejercicio de c++

Cita:
Iniciado por zare
//en el q pusist al compilarlo imprime unos simbolos despues de la palabra!!!
//saludos!!!
Exacto, ese codigo era justamente un ejemplo de lo que pasaria usando TU codigo que no comprueba el fin de la cadena (lo puse solamente por la negacion de princesa_him). Descomentando la linea cuyo comentario final es: "//con esto POR EJEMPLO se soluciona el problema" funcionaba correctamente.

Cita:
Iniciado por zare
ahi en tu funcion debes cambiar el cin por el gets es q el gets te recibe incluyendo los espacios...en cambio el cin solo te recibe la cadena hasta q encuentra un espacio .....
La solucion mas simple entonces es usar directamente cin y cout empujando (>>, <<) Aunque supongo que no sera lo que le piden
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 07/10/2008 a las 14:50
  #11 (permalink)  
Antiguo 07/10/2008, 14:50
 
Fecha de Ingreso: agosto-2008
Ubicación: Mi casa!!! Perú-Aqp
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: necesito ayuda con un ejercicio de c++

claro usando el cin es simple peroooo ... creo q estaria haciendo trampa jeje quedaria algo asi
int main()
{

char v[80];
cout<<"ingrese cadena"<<endl;
cin>>v;
cout<<v<<endl;
}
  #12 (permalink)  
Antiguo 07/10/2008, 15:01
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: necesito ayuda con un ejercicio de c++

Si, muy probablemente no sea lo que le piden.

Ojo que eso tampoco es completamente seguro, con escribir al menos 80 caracteres en el teclado logramos que el programa escriba en una direccion indefinida.

Mejor asi:
Código:
char in[20]; //por ejemplo
cin.get((char*)&in, sizeof(in));
Y para obtener una sola palabra:
Código:
cin.get((char*)&in, sizeof(in), ' ');
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #13 (permalink)  
Antiguo 07/10/2008, 15:05
 
Fecha de Ingreso: agosto-2008
Ubicación: Mi casa!!! Perú-Aqp
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: necesito ayuda con un ejercicio de c++

entendido!! =)
  #14 (permalink)  
Antiguo 19/10/2008, 11:10
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: necesito ayuda con un ejercicio de c++

gracias a todos por su ayuda pero lo solucione al siguiente dia de publicar el post XD
  #15 (permalink)  
Antiguo 19/10/2008, 12:29
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: necesito ayuda con un ejercicio de c++

De nada entonces.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #16 (permalink)  
Antiguo 20/10/2008, 15:48
 
Fecha de Ingreso: octubre-2008
Mensajes: 71
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: necesito ayuda con un ejercicio de c++

Cita:
Iniciado por princesa_him Ver Mensaje
Pero en una cadena siempre hay espacios, esta bien lo que dijo Zare... y si es que no los hay... ps es obvio q te retornara toda la palabra, sino como presumes, que sepa el compilador... cada palabra... osea entiendes a lo que me voy... no?
Bueno cuando lo hallas terminado... nos dices ps... y si aun no te sale... ps mandanos lo que hiciste, y nosotros te lo completamos...
!!!
bueno yo tb toy recien aprendiendo en la u, y se que causa muchos problemas solo hay q saber pensar... jjiji ... besitos

quien dijo que en una acdena siempre hay espacios ?__________?


en php seria facil recien vengo a aprender c++ es parecido a php o al reves mejor dicho jeje


pero debe haber una funcion explode o algo :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:29.