You're reassigning quote in your for initializer, which is invalid and will cause an access-violation because you're dereferencing it in the *quote != NULL part.
Semantically NULL and '\0' are equivalent, but syntactically I'd prefer this. Note that by using this approach you keep a pointer to (the start of) the string.
wchar const_t* quote = L"To be or not to be, that is the question.";
for( wchar_t* c = quote; *c != '\0'; c++ ) {
*c = tolower( *c );
}
alternatively using an index:
wchar const_t quote[] = L"To be or not to be, that is the question.";
for( size_t i = 0; i < sizeof(quote); i++ ) {
quote[i] = tolower( quote[i] );
}
(note that the semantics of sizeof will change if the value of quote is not known at compile time)
quote = 0is incorrect.unsigned int?