I can't understand what the '\0' in the two different place mean in the following code:
string x = "hhhdef\n"; cout << x << endl; x[3]='\0'; cout << x << endl; cout<<"hhh\0defef\n"<<endl;
Result:
hhhdef
hhhef
hhh
Can anyone give me some pointers?
The null character '\0' (also null terminator ), abbreviated NUL , is a control character with the value zero . Its the same in C and objective C. The character has much more significance in C and it serves as a reserved character used to signify the end of a string ,often called a null-terminated string.
The \0 is treated as NULL Character. It is used to mark the end of the string in C. In C, string is a pointer pointing to array of characters with \0 at the end.
it is used to show that the string is completed.it marks the end of the string. it is mainly used in string type.by default string contain '\0\ character means it show the end of the character in string. end of the array contain ''\0' to stop the array memory allocation for string name.
“\0” is the null termination character. It is used to mark the end of a string. Without it, the computer has no way to know how long a group of characters (string) goes. In C/C++ it looks for the Null Character to find the end of a string.
C++ std::string
s are "counted" strings - i.e., their length is stored as an integer, and they can contain any character. When you replace the third character with a \0
nothing special happens - it's printed as if it was any other character (in particular, your console simply ignores it).
In the last line, instead, you are printing a C string, whose end is determined by the first \0
that is found. In such a case, cout
goes on printing characters until it finds a \0
, which, in your case, is after the third h
.
C++ has two string types:
The built-in C-style null-terminated strings which are really just byte arrays and the C++ standard library std::string
class which is not null terminated.
Printing a null-terminated string prints everything up until the first null character. Printing a std::string
prints the whole string, regardless of null characters in its middle.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With