If you are going to perform concatenation in C++, some of the things you must be kept in mind are:
- If a+b is an expression that is showing string concatenation, then the result of the expression will be a copy of the character in ‘a’ followed by the character in ‘b’.
- Either ‘a’ or ‘b’ can be string literal or a value of type char but not both. That’s why the following concatenation doesn’t throw an error but above one does.
For Example:
Input : "geeks"+"forgeeks"
Output : It will not compile, an error will be thrown.
Case 1 : Due to the above reasons, we can not concatenate following expression:
"geeks" + "forgeeks" + geekstring
Here, left associativity of + also plays a role in creating the error as + is left associative so first “geeks” + “forgeeks” will concatenate which will create the error as discussed above. Case 2 : We can concatenate following:
geekstring + "geeks" + "forgeeks"
Here, left associativity will not create the error as it will join geekstring and “geeks” making it not a literal then “forgeeks” will be added and no error will be generated.
Input : geekstring = "geeks"
Input : geekstring + "forgeeks"
Output: geeksforgeeks
CPP
#include <iostream>
using namespace std;
int main()
{
string geekstring = "geeks";
cout << geekstring + "forgeeks" << endl;
cout << geekstring + "forgeeks" + " Hello";
return 0;
}
|
Output:
geeksforgeeks
geeksforgeeks Hello
Time complexity : O(1)
Space complexity : O(n)