Control characters:
(Hex codes assume an ASCII-compatible character encoding.)
\a=\x07= alert (bell)\b=\x08= backspace\t=\x09= horizonal tab\n=\x0A= newline (or line feed)\v=\x0B= vertical tab\f=\x0C= form feed\r=\x0D= carriage return\e=\x1B= escape (non-standard GCC extension)
Punctuation characters:
\"= quotation mark (backslash not required for'"')\'= apostrophe (backslash not required for"'")\?= question mark (used to avoid trigraphs)\\= backslash
Numeric character references:
\+ up to 3 octal digits\x+ any number of hex digits\u+ 4 hex digits (Unicode BMP, new in C++11)\U+ 8 hex digits (Unicode astral planes, new in C++11)
\0 = \00 = \000 = octal ecape for null character
If you do want an actual digit character after a \0, then yes, I recommend string concatenation. Note that the whitespace between the parts of the literal is optional, so you can write "\0""0".