C/Visual C - manejo de strings

 
Vista:

manejo de strings

Publicado por Eduardo Chongkan (1 intervención) el 24/12/2002 05:43:54
necesito lo sgte:
1- leer una oración
2- separar la oración en todas sus palabras
3- asignar cada palabra a un campo de una matriz (no importante)

Este procedimiento lo hice en pascal 7.0 pero me esta dando muchos problemas hacerlo en c++.

Si alguien puede ayudarme gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:manejo de strings

Publicado por El Mogur (202 intervenciones) el 25/12/2002 14:11:36
¿Puedes poner el código de lo que llevas, para ver cual puede ser el problema?
Si no, lo que hacemos respondiendote es darte ideas de como se hace (que ya la debes tener, porque lo hiciste en Pascal), o darte el código para que lo copies, y ¡tampoco es eso!

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:manejo de strings

Publicado por Endos (58 intervenciones) el 25/12/2002 14:40:40
#include <iostream.h>
...

//1- leer una oración
char Oracion[2048];

cin.getline(Oracion,2048);

//2- separar la oración en todas sus palabras
char *Palabras[2048];
char *Puntero=Oracion;
char *Puntero2=Oracion;
int ContadorPalabras=0;

while(*(Puntero))
{
if(*(Puntero)==' ')
{
*(Puntero++)=NULL;
Palabras[ContadorPalabras++]=Puntero2; //3- asignar cada palabra a un campo de una matriz
while(*(Puntero)==' ') // Eliminar posibles espacios
Puntero++;
Puntero2=Puntero; // inicio siguiente palabra
}
++Puntero;
}
Palabras[ContadorPalabras++]=Puntero2; // Asignar la ultima

for(int P=0; P<ContadorPalabras; P++) // Miramos si es cierto :P
cout << Palabras[P] << endl;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:manejo de strings

Publicado por lean++ (6 intervenciones) el 30/12/2002 16:28:29
yo lo haria asi:
hacer una funcion que reciba un array (la oracion) y una matriz de m x n recorres el array y cuando encuentra un espacio, lo anterior lo pone en la primera posicion de la matriz, el codigo quedaria mas o menos asi

void oracion (char oracion [100] (esto lo podes hacer con un puntero como quieras, char palabras [ ][20])
(aca declaras todo)
for (i=0; i<100; i++)
letra=oracion[i]
if letra !=' '
palabra=strcat(palabra,letra)
else
palabras[j][0]=palabra
j++
endfor

te aclaro que ni lo compile, asi que te puede dar cualquier error, pero me parecio bueno escribirlo para que se entienda la idea, espero que te sirva, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:aclaracion de lo anterior

Publicado por lean++ (6 intervenciones) el 30/12/2002 16:33:18
me olvide de poner palabra otra vez en \' \' asi que cuando escribe la matriz o sea cuando dice

palabras[j][0]=palabra
j++

tendria que decir

palabras[j][0]=palabra
palabra=\'\'
j++

ahora si.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar