# V3132. A terminal null is present inside a string. The '\0xNN' characters were encountered. Probably meant: '\xNN'.

The analyzer detected a likely error that has to do with the presence of a terminal null inside a string.

This error is typically caused by a typo. For example, the sequence "\0x0A" will be interpreted as the following four-byte sequence: { '\0', 'x', '0', 'A' }.

If you want to specify a character code in hexadecimal format, you need to write the 'x' character immediately after the '\' character. If you write the sequence "\0" instead, the compiler will interpret it as zero (in octal format). See also:

- MSDN. C Character Constants.
- MSDN. Escape Sequences.

Consider the following example:

    String s = "string\0x0D\0x0A";

When trying to print this string, the newline escape characters will not be processed. Printing functions will stop at the null terminator, '\0'. To fix this error, the sequence "\0x0D\0x0A" needs to be replaced with "\x0D\x0A".

Fixed code:

    String s = "string\x0D\x0A";

This diagnostic is classified as:

CWE-665