What happen if we concatenate two string literals in C++?
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
// Program to illustrate two string // literal can not be concatenate #include <iostream> using namespace std; int main() { string geekstring = "geeks"; cout << geekstring + "forgeeks" << endl; // while this will not work // cout<<"geeks" + "forgeeks"; // this will work cout << geekstring + "forgeeks" + " Hello"; // but again this will not work // cout<<"forgeeks" + "hello" + geekstring; return 0; } |
Output:
geeksforgeeks geeksforgeeks Hello
Time complexity : O(1)
Space complexity : O(n)
Please Login to comment...