Bạn chỉ định lại quote
trong bộ khởi tạo for
, không hợp lệ và sẽ gây ra vi phạm quyền truy cập vì bạn bỏ qua nó trong phần *quote != NULL
.
Semantically NULL
và '\0'
tương đương, nhưng cú pháp tôi thích điều này. Lưu ý rằng bằng cách sử dụng phương pháp này, bạn giữ một con trỏ đến (bắt đầu) chuỗi.
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);
}
cách khác sử dụng một chỉ số:
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]);
}
(lưu ý rằng ngữ nghĩa của sizeof
sẽ thay đổi nếu giá trị của quote
không biết tại thời gian biên dịch)
Để cắt thành điểm, 'quote = 0' không chính xác. – Zong
Tại sao không sử dụng 'unsigned int'? – Recker