Open In App

What happen if we concatenate two string literals in C++?

Improve
Improve
Like Article
Like
Save
Share
Report

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)


Last Updated : 22 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads