how to assign uninitialized string value from another string in C++ -


i new programming. question may silly helpful if can guide me.

please see code below:

#include <iostream> #include <string> using namespace std;      int main()     {         cout << "you have choose reverse text" << endl;          string inputstring;         string outputstring;          cout << "enter string want reverse" << endl;         getline(cin, inputstring);         int n = inputstring.length();          (int = 0; < n; i++)         {             outputstring[i] = inputstring[n - 1 - i]; // problem in line         } } 

till here works fine inputstring[n - 1 - i] when try assign value outputstring. getting error.

outputstring empty, you're accessing out of bounds here:

outputstring[i] = inputstring[n - 1 - i]; 

you have ensure outputstring has length of @ least n time enter loop. there different ways of achieving that.

one solution create size n after reading in inputstring. here, create filled *:

std::string outputstring(n, '*'); 

you can resize string after creation:

outputstring.resize(n); 

now can access outputstring[n] n in range [0, n). makes loop valid. see this working example.

alternatively, consider reversing inputstring in-place. note in real code, can done std::reverse:

std::reverse(inputstring.begin(), inputstring.end()); 

Comments

Popular posts from this blog

php - Invalid Cofiguration - yii\base\InvalidConfigException - Yii2 -

How to show in django cms breadcrumbs full path? -

ruby on rails - npm error: tunneling socket could not be established, cause=connect ETIMEDOUT -