+ 1
C++ string operations behave strange
Why str4 here give me like that result? https://code.sololearn.com/cFD8d8Jui7fZ/?ref=app
7 Respostas
+ 1
Yes. so There is no need to use str3, str4. They works as dublicates.. 
You're welcome..
+ 2
//hope it helps.. Read comments.. Mustafa Emad 
#include <iostream>
using namespace std;
int main() {
    string str1, str2;
    
    getline(cin, str1); // first
    getline(cin, str2); //second
    
    string str3 = str1.append(" " + str2); // apends " "+str2 to str1 and returns new str1
    // so now str1= "first second"
    //str3 = "first second"
    //str2 = "second"
    
    cout << str3.length() << endl << str3 << endl;
    
    str1.swap(str2); //swaps str1,str2 so then str1= "second" , str2="first second"
    
    string str4 = str1.append(" " + str2); //appends str2 ("first second") to str1("second") and then returns new str1
    //so now str1="second first second"
    //str4 = "second first second"
    //str2 = "first second"
    
    cout << str4.length() << endl << str4 << endl;
    return 0;
}
+ 2
Jayakrishna🇮🇳 so append didn't affect on variable only but all the coming code that's help thanks I got it
0
What result? What strange you found?
can you detail it!!!
0
Jayakrishna🇮🇳 make additional text at second append
0
Mustafa Emad I run it and all fine. 
Add your try with input and output and expected output.. So I can understand your doubt..!
0
Jayakrishna🇮🇳 the code is expected that:
first
second
second 
first
but output is:
first
second 
second
first second




