hola gente tengo una duda ...quiero llenar un string con algo y me sale este error
expession string subscript out of range
#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
]#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]='+';
}
Hola flony.
Proba de este modo:
#include<iostream>
#include<string>
using namespace std;
int main ()
{
string uno, dos;
cout<<"ingrese uno "<<endl;
getline(cin, uno);
dos.assign(uno.size(), '+');
...
Saludos.
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;
ingrese uno
12345
+
++
+++
++++
+++++
12345 +++++
#include<iostream>
#include<string>
using namespace std;
int main ()
{
int i=0;
string uno;
string dos;
cout<<"ingrese uno "<<endl;
getline(cin, uno);
for ( i = 0; i <uno.size(); i++)
{
dos.append("+");
cout<<dos<<endl;
}
cout<<uno<<" "<<dos<<endl;
return 0;
}
Saluditos!
(http://i1280.photobucket.com/albums/a497/leosansan/leosan1/leones%20peques/leonpersonajepeque_zps25f3622f.jpg)
#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]='+';
}
return 0;
}
Te has equivocado en una cosa. En lugar de "dos" tendría que ser uno:
#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++)
{
uno[i]='+';
}
return 0;
}
Si lo que querías era otro string con +
#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]='+';
}
return 0;
}
Te has equivocado en una cosa. En lugar de "dos" tendría que ser uno:
#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 += '+';
}
return 0;
}
gracias amchacon esa es la respuesta, ahora lo de dos.assign(uno.size(), '+');
lo voy a revisar...siempre hay mas de un camino a roma