Bạn có nên sử dụng strcmp hoặc _tcscmp để so sánh các chuỗi trong phiên bản Unicode không?Bạn có nên sử dụng strcmp hoặc _tcscmp để so sánh các chuỗi trong phiên bản Unicode không?
8
A
Trả lời
8
_tcscmp()
là macro. Nếu bạn xác định UNICODE
, nó sẽ sử dụng wcscmp()
, nếu không nó sẽ sử dụng strcmp()
.
Lưu ý các loại TCHAR
, PTSTR
, v.v. tương tự nhau. Chúng sẽ là WCHAR
và PWSTR
nếu bạn xác định UNICODE
và CHAR
và PSTR
nếu không.
7
Không, bạn nên sử dụng _ tcscmp
. Điều đó sẽ giải quyết cho chức năng thích hợp tùy thuộc vào cờ biên dịch của bạn.
Các vấn đề liên quan
- 1. So sánh chuỗi. Làm thế nào bạn có thể so sánh chuỗi với std :: wstring? WRT strcmp
- 2. Strcmp có so sánh chuỗi utf-8 theo thứ tự điểm mã không?
- 3. So sánh các chuỗi phiên bản trong groovy
- 4. Có cần sử dụng === để so sánh các chuỗi trong Javascript hoặc là == đủ không?
- 5. Tôi có nên sử dụng '==' cho các so sánh chuỗi địa phương hóa .NET không?
- 6. Tôi có nên chọn == hoặc eq để so sánh chuỗi trong EL không?
- 7. So sánh các phiên bản dưới dạng chuỗi
- 8. So sánh hai chuỗi phiên bản trong PHP
- 9. Bạn có sử dụng JSON.stringify để so sánh sâu và nhân bản không?
- 10. So sánh số có nhanh hơn so sánh chuỗi không?
- 11. Tôi có thể sử dụng memcmp hai so sánh chuỗi ký tự nhiều byte không?
- 12. lặp qua chuỗi unicode và so sánh với unicode trong từ điển python
- 13. chuỗi So sánh sử dụng '==' và 'là'
- 14. Python unicode so sánh bằng thất bại
- 15. So sánh phiên bản văn bản trong FCKEditor
- 16. Hai chuỗi so sánh bằng cách sử dụng '=' nhưng không thành công trong 'thích' so sánh
- 17. Cách xác định phiên bản hệ điều hành iPhone hiện tại khi chạy và so sánh các chuỗi phiên bản?
- 18. COLLATE được bản địa hoá trên so sánh chuỗi SQLite
- 19. Hướng dẫn cho Python - Tôi có nên sử dụng phiên bản 2.x hoặc 3.0 không?
- 20. nhanh so sánh chuỗi trong C
- 21. Cách so sánh các phiên bản gói Debian
- 22. So sánh các chuỗi có định dạng "2.0.1", "2.0.09"
- 23. Sử dụng "is" hoặc "==" để so sánh số trong Python có tốt hơn không?
- 24. Làm cách nào để so sánh hai phiên bản AssemblyName?
- 25. so sánh hai chuỗi trong SQL Server
- 26. Tôi có nên sử dụng Phiên cơ sở dữ liệu hoặc Phiên tệp PHP gốc không?
- 27. Tôi có nên sử dụng _T hoặc _TEXT trên các chuỗi ký tự C++ không?
- 28. Cách nhanh nhất để so sánh các chuỗi trong python
- 29. chuỗi byte so với chuỗi unicode. Python
- 30. So sánh các chuỗi trong Java
Điều đó không đúng. 'UNICODE' định nghĩa chuỗi ký tự rộng trong API Win32. tức là khi bạn '#include'. '_UNICODE' thúc đẩy sự hỗ trợ c-runtimes cho các ký tự rộng (và nhiều byte), và có nghĩa khi bạn' #include '(hoặc bất kỳ phần đầu c-runtime nào khác). Nếu '_UNICODE' được định nghĩa,' _tcscmp' sẽ là 'wcscmp', nếu' _MBCS' được định nghĩa, '_tcscmp' sẽ là' _mbcscmp', nếu không nó sẽ là 'strcmp'. –
@Chris Becke Hm, tôi không biết điều đó. Tôi thường xác định cả hai (với dấu gạch dưới và không có), và bây giờ nó có ý nghĩa tại sao đó là cần thiết. :-) – asveikau