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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  llenar string con algo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: llenar string con algo  (Leído 1,602 veces)
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
llenar string con algo
« en: 17 Junio 2013, 02:08 am »

hola gente tengo una duda ...quiero llenar un string con algo y me sale este error
expession string subscript out of range
Código:
#include<iostream>
#include<string>

using  namespace std;

int main ()
{
string uno;
string dos;
        signed int tamano;
        cout<<"ingrese uno "<<endl;
getline(cin, uno);
        tamano=uno.size();
        for (int i = 0; i <= tamano-1; i++)
{
dos[i]='+';
}
         .....etc etc etc.......
        return 0;
}
la otra q probe pero sale el mismo error es
Código:
]#include<iostream>
#include<string>

using  namespace std;

int main ()
{
string uno;
string dos;
        signed int tamano;
        cout<<"ingrese uno "<<endl;
getline(cin, uno);
        for (int i = 0; i <=uno.size(); i++)
{
dos[i]='+';
}


« Última modificación: 17 Junio 2013, 02:43 am por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: llenar string con algo
« Respuesta #1 en: 17 Junio 2013, 07:01 am »

Hola flony.

Proba de este modo:
Código
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using  namespace std;
  5.  
  6. int main ()
  7. {
  8.  string uno, dos;
  9.  
  10.  cout<<"ingrese uno "<<endl;
  11.  getline(cin, uno);
  12.  dos.assign(uno.size(), '+');
  13.  ...
  14.  

Saludos.


« Última modificación: 17 Junio 2013, 07:04 am por ecfisa » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: llenar string con algo
« Respuesta #2 en: 17 Junio 2013, 07:39 am »

A mí error, lo que se dice error, no meda. Otra cosa es que lo que pareces querer, que el string se componga de tantos signos + como la longitud de uno no funciona como en los arrays, sino que hay que hacer uso de .append o, como bien comenta amchacon en el siguiente post, de +=, para ir guardando/creando memoria. Otra cosa distinta es acceder a los elementos de un string ya creado como en un array, que sí se puede. Una salida como ejemplo aclaratorio;

Código
  1. ingrese uno
  2. 12345
  3. +
  4. ++
  5. +++
  6. ++++
  7. +++++
  8. 12345  +++++
  9.  

Código
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using  namespace std;
  5.  
  6. int main ()
  7. {
  8.    int i=0;
  9.    string uno;
  10.    string dos;
  11.    cout<<"ingrese uno "<<endl;
  12.    getline(cin, uno);
  13.    for ( i = 0; i <uno.size(); i++)
  14. {
  15. dos.append("+");
  16. cout<<dos<<endl;
  17. }
  18.    cout<<uno<<"  "<<dos<<endl;
  19.    return 0;
  20. }
  21.  

Saluditos!
« Última modificación: 17 Junio 2013, 19:10 pm por leosansan » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: llenar string con algo
« Respuesta #3 en: 17 Junio 2013, 11:41 am »

Código
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using  namespace std;
  5.  
  6. int main ()
  7. {
  8. string uno;
  9. string dos;
  10.        signed int tamano;
  11.        cout<<"ingrese uno "<<endl;
  12. getline(cin, uno);
  13.        for (int i = 0; i <=uno.size(); i++)
  14. {
  15. dos[i]='+';
  16. }
  17.  
  18.       return 0;
  19. }

Te has equivocado en una cosa. En lugar de "dos" tendría que ser uno:

Código
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using  namespace std;
  5.  
  6. int main ()
  7. {
  8. string uno;
  9. string dos;
  10.        signed int tamano;
  11.        cout<<"ingrese uno "<<endl;
  12. getline(cin, uno);
  13.        for (int i = 0; i <=uno.size(); i++)
  14. {
  15. uno[i]='+';
  16. }
  17.  
  18.       return 0;
  19. }

Si lo que querías era otro string con +

Código
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using  namespace std;
  5.  
  6. int main ()
  7. {
  8. string uno;
  9. string dos;
  10.        signed int tamano;
  11.        cout<<"ingrese uno "<<endl;
  12. getline(cin, uno);
  13.        for (int i = 0; i <=uno.size(); i++)
  14. {
  15. dos[i]='+';
  16. }
  17.  
  18.       return 0;
  19. }

Te has equivocado en una cosa. En lugar de "dos" tendría que ser uno:

Código
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using  namespace std;
  5.  
  6. int main ()
  7. {
  8. string uno;
  9. string dos;
  10.        signed int tamano;
  11.        cout<<"ingrese uno "<<endl;
  12. getline(cin, uno);
  13.        for (int i = 0; i <=uno.size(); i++)
  14. {
  15. dos += '+';
  16. }
  17.  
  18.       return 0;
  19. }
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: llenar string con algo
« Respuesta #4 en: 18 Junio 2013, 03:51 am »

gracias amchacon esa es la respuesta, ahora lo de
Código:
dos.assign(uno.size(), '+');
lo voy a revisar...siempre hay mas de un camino a roma
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines