Open In App

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:

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




// 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)

Article Tags :
C++