Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ I\'m supposed to concatenate the 2 strings entered with a for loop but I don

ID: 3769700 • Letter: C

Question

C++

I'm supposed to concatenate the 2 strings entered with a for loop but I don't know what to put inside the for loop.

#include <iostream>

#include <cctype>

#include <cstring>

using namespace std;

int main()

{

string str1, str2;

  

cout << "Enter two strings: " << endl;

cin >> str1;

  

char * cstr1 = new char [str1.length()+1];

char * Newstring1 = new char [str1.length()+1];

strcpy (cstr1, str1.c_str());

  

strcpy(Newstring1, cstr1);

cout << Newstring1 << endl;

  

cin >> str2;

  

char * cstr2 = new char [str2.length()+1];

char * Newstring2 = new char [str2.length() + 1];

strcpy(cstr2, str2.c_str());

strcpy(Newstring2, cstr2);

cout << Newstring2;

  

cout << strcat(Newstring1, Newstring2);

  

char * cstr3 = new char [str1.length() + 1 + str2.length() + 1];

for(int i=0;i<=(str1.length() + 1 + str2.length() + 1);i++)

}

Explanation / Answer

I changed the for loop condition. Its working code

#include <iostream>
#include <cctype>
#include <cstring>

using namespace std;
int main()
{
string str1, str2;
  
cout << "Enter two strings: " << endl;
cin >> str1;
  
char * cstr1 = new char [str1.length()+1];
char * Newstring1 = new char [str1.length()+1];
strcpy (cstr1, str1.c_str());
  
strcpy(Newstring1, cstr1);
cout << Newstring1 << endl;
  
cin >> str2;
  
char * cstr2 = new char [str2.length()+1];
char * Newstring2 = new char [str2.length() + 1];
strcpy(cstr2, str2.c_str());
strcpy(Newstring2, cstr2);
cout << Newstring2 << endl;
  
cout << strcat(Newstring1, Newstring2) << endl;

char * cstr3 = new char [str1.length() + str2.length() + 1];
//concated string will be combine length of both string str1 and str2 plus 1 for null character

int i; //always define variables at the top of code (recommended)
for(i=0;i < (str1.length() + str2.length());i++)
if(i<str1.length())
cstr3[i] = str1[i];
else
cstr3[i] = str2[i-str1.length()];
cstr3[i] = ''; //putting null character at the very end (outside loop)

cout<<cstr3<<endl;
}