Open In App

Raw String Literal in C++

Improve
Improve
Like Article
Like
Save
Share
Report

A Literal is a constant variable whose value does not change during the lifetime of the program. Whereas, a raw string literal is a string in which the escape characters like ‘ \n, \t, or \” ‘ of C++ are not processed. Hence, a raw string literal that starts with R”( and ends in )”.

The syntax for Raw string Literal:

R "delimiter( raw_characters )delimiter" // delimiter is the end of logical entity

Here, delimiter is optional and it can be a character except the backslash{ / }, whitespaces{  }, and parentheses { () }.

These raw string literals allow a series of characters by writing precisely its contents like raw character sequence

Example:

Ordinary String Literal 

"\\\\n"

Raw String Literal 

  \/-- Delimiter
R"(\\n)"
     /\-- Delimiter

Difference between an Ordinary String Literal and a Raw String Literal:

Ordinary String Literal Raw String Literal
It does not need anything to be defined. It needs a defined line{ parentheses ()} to start with the prefix R.
It does not allow/include nested characters. It allows/includes nested character implementation.
It does not ignore any special meaning of character and implements their special characteristic. It ignores all the special characters like \n and \t and treats them like normal text.

Example of Raw String Literal:

CPP




// C++ program to demonstrate working of raw string literal
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    // A Normal string
    string string1 = "Geeks.\nFor.\nGeeks.\n";
 
    // A Raw string
    string string2 = R"(Geeks.\nFor.\nGeeks.\n)";
 
    cout << string1 << endl;
 
    cout << string2 << endl;
 
    return 0;
}


Output

Geeks.
For.
Geeks.

Geeks.\nFor.\nGeeks.\n

Time Complexity: O(n)

Space complexity: O(n) 

 


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