Título: Duda sobre guardar palabras e imprimir Publicado por: angelderonda en 22 Enero 2019, 09:17 am Buenas, necesito saber como guardar palabras metidas por un usuario de manera que el programa finaliza cuando detecta la palabra "END".
Ejemplo: HOLA SOY ANGEL---aqui el programa seguiria pidiendo palabras y las va guardando HOLA SOY END--el programa finalizaria. Lo que tengo hasta ahora es lo siguiente, pero no me funciona tal y como quiero, ya que quiero que las palabras se vayan guardando dentro de ese array de string hasta que se encuentre la palabra "END" #include <iostream> #include<array> using namespace std; const int MAX_PAL_DIST = 20; typedef array<string, MAX_PAL_DIST> TString; struct TOpenString{ int nelem = 0; TString s; }; bool isletter(char c); int main() { TOpenString a; string word; char c; while (cin >> c and word != "END") { if (isletter(c)) { word += c; } else { a.s[a.nelem] = word; word = ""; ++a.nelem; } } return 0; } bool isletter(char c){ return (c >= 'A' and c <= 'Z'); } Título: Re: Duda sobre guardar palabras e imprimir Publicado por: K-YreX en 22 Enero 2019, 14:59 pm Primero de todo, mete tu código entre etiquetas de código GeSHi (dando a modificar mensaje y encima del cuadro de texto las puedes seleccionar).
Segundo, no vayas capturando caracter a caracter... <cin> puede almacenar hasta el primer espacio que se encuentra. En cambio hay otras funciones como <getline()> que también almacenan lo que viene después de cada espacio hasta que se pulsa enter. Una idea que se me viene a la cabeza, almacena todo el texto hasta el enter final en un <string>. Recorre ese <string>, por cada palabra, si es distinta de <END>, la guardas. Y cuando coincida con <END>, se acabó. Ahora te toca traducirlo. Suerte :-X PD: Te recomiendo que amplies el programa para poder escribir también en minúsculas ya que el cambio que tienes que hacer es muy pequeño y vuelve el programa bastante más funcional. |