Which of the following are null-terminated string?
char *str1 = "This is a string.";
char *str2 = "This is a string.\0";
char str3[] = "This is a string.";
const char *str4 = "This is a string.";
const char *str5 = "This is a string.\0";
const char str6[] = "This is a string.";
str2
and str5
have the particularity of being doubly null-terminated stringsAlso :
char *str1
should be const char *str1
char *str2
should be const char *str2
They are all null-terminated (str2
and str5
are actually doubly-null-terminated) because using double quotes is a shorthand for a null-terminated char array.
So this:
"Hello"
Is actually this:
{'H', 'e', 'l', 'l', 'o', '\0'}
Variables pointing to string literals such as these should be declared as const
.
All. C compiler auto aggregates string with a terminate '\0', then store it in a char[] or refer to it by char *;
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