elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda sobre guardar palabras e imprimir
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre guardar palabras e imprimir  (Leído 1,887 veces)
angelderonda

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Duda sobre guardar palabras e imprimir
« 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');
}


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Duda sobre guardar palabras e imprimir
« Respuesta #1 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.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda sobre guardar en olly debuger
Ingeniería Inversa
‭lipman 1 2,484 Último mensaje 1 Junio 2006, 01:10 am
por tena
Duda sobre guardar datos en cada usuario en php « 1 2 ... 6 7 »
PHP
::: Devil ::: 65 20,402 Último mensaje 16 Julio 2014, 22:05 pm
por ::: Devil :::
guardar palabras de una cadena en arreglos
Programación C/C++
bobitttyy 4 2,922 Último mensaje 7 Junio 2015, 17:38 pm
por antoniognzle
ayuda sobre invertir palabras
Programación C/C++
dokomaster 0 1,590 Último mensaje 8 Junio 2016, 01:22 am
por dokomaster
Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
Programación C/C++
galapok11 8 5,148 Último mensaje 12 Agosto 2016, 19:30 pm
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines