tan chảy
Áp phích gốc- Ngày 4 tháng 12 năm 2006
- Katy, Texas
- Ngày 8 tháng 6 năm 2007
(Thêm nữa, bây giờ tôi đang làm nhiệm vụ tìm ra nó ...)
Cảm ơn, Todd NS
tan chảy
Áp phích gốc- Ngày 4 tháng 12 năm 2006
- Katy, Texas
- Ngày 8 tháng 6 năm 2007
tôi hiểu rồi
- Ngày 25 tháng 10 năm 2004
- Ngày 8 tháng 6 năm 2007
Nếu bạn không muốn hoặc không cần phải lo lắng về ngôn ngữ, hãy:
_stricmp (str1.c_str (), str2.c_str ())
Là giải pháp đơn giản nhất (cũng khá hiệu quả).
Miền địa phương làm phức tạp mọi thứ một chút (tốt, đó thực sự là những thiếu sót của thư viện tiêu chuẩn khiến điều này trở nên phức tạp).
Hãy xem liệu tôi có thể tìm thấy một liên kết cho một cái gì đó liên quan đến ngôn ngữ ...
đây là một: http://lafstern.org/matt/col2_new.pdf
Tôi không biết liệu anh ấy có thực sự biết mình đang nói gì không, nhưng có vẻ như anh ấy biết. Anh ấy tiếp tục một lúc về vấn đề này để bạn có thể hiểu vấn đề, nhưng bạn có thể bỏ qua phần cuối và kiểm tra khối mã cuối cùng để biết giải pháp tốt nhất của anh ấy. NS
tan chảy
Áp phích gốc- Ngày 4 tháng 12 năm 2006
- Katy, Texas
- Ngày 9 tháng 6 năm 2007
Cảm ơn vì đã xác nhận - rất vui khi thấy tôi đã không bỏ lỡ nó.
Todd
Mã:
#include #include using namespace std ; bool case_insensitive_compare( string a, string b) { char char1, char2, blank = ' ' ; int len1 = a.length() ; int len2 = b.length() ; for (int i = 0 ; i input ; result = case_insensitive_compare(input, hello) ; std::cout << 'Result of compare of ' << input << ' to ' << hello << ' is ' << (result ? 'true' : 'false' ) << endl ; return 0; }
NS tan chảy
Áp phích gốc- Ngày 4 tháng 12 năm 2006
- Katy, Texas
- Ngày 10 tháng 6 năm 2007
iSee đã nói: Nếu bạn không muốn hoặc không cần phải lo lắng về ngôn ngữ, thì:
_stricmp (str1.c_str (), str2.c_str ())
Là giải pháp đơn giản nhất (cũng khá hiệu quả).
Được tôi từ bỏ. Bạn đã nghĩ ra ở đâu _stricmp ?
Todd TRONG
wittegijt
- Ngày 18 tháng 2 năm 2007
- Eindhoven
- Ngày 11 tháng 6 năm 2007
toddburch nói: OK, tôi từ bỏ. Bạn đã nghĩ ra ở đâu _stricmp ?
Todd
Đó là một thứ của Windows. Thư viện Unix sử dụng strcasecmp, nó ở trong.
Wittegijt.
tôi hiểu rồi
- Ngày 25 tháng 10 năm 2004
- Ngày 11 tháng 6 năm 2007
toddburch nói: OK, tôi từ bỏ. Bạn đã nghĩ ra ở đâu _stricmp ?
Todd
OK, xin lỗi vì đã ném nó ra khỏi đó.
Tôi nghĩ nó là một phần của thư viện C tiêu chuẩn, nhưng không phải vậy. Nó chỉ xuất hiện, không chính thức, dưới các tên khác nhau, trong các triển khai khác nhau của thư viện C. Vì vậy, so sánh không phân biệt chữ hoa chữ thường cũng không phải là một phần chính thức của thư viện C chính thức. Geeze. Đó dường như là một thiếu sót rất lớn. Trong VS, nó là _stricmp () hoặc stricmp (), trong CodeWarrior cho Mac là stricmp () hoặc strcasecmp () và trong OS X 10.4 / Xcode là strcasecmp ().
Nghĩ lại thì, dấu gạch dưới hàng đầu lẽ ra phải cho tôi gợi ý.
Tôi đoán nếu bạn muốn phù hợp với tiêu chuẩn C, bạn phải triển khai của riêng bạn bằng cách sử dụng tolower () (hoặc toupper ()) trong một vòng lặp.
Hãy xem một lần vượt qua đầu tiên có thể là (Đây là điều tôi nghĩ, KHÔNG PHẢI là mã được kiểm tra):
Mã:
#include ... int mystricmp(const char* str1, const char* str2) { if (str1 == str2) return 0; else if (str1 == NULL) return -1; else if (str2 == NULL) return 1; else { while (tolower(*str1) == tolower(*str2) && *str1 != 0 && *str2 != 0) { ++str1; ++str2; } if (*str1 *str2) return 1; else return 0; } }
Dù sao, một lần nữa, xin lỗi vì những lời khuyên tồi tệ. Tôi đoán rằng tôi đã không thực sự thực hiện nhiều mã hóa C / C ++ trên Mac OS X nơi tôi muốn tránh API OS (CFString, v.v.) kể từ những ngày CodeWarrior ... NS
tan chảy
Áp phích gốc- Ngày 4 tháng 12 năm 2006
- Katy, Texas
- Ngày 11 tháng 6 năm 2007
OK, bây giờ để strcasecmp () . Trang web cppreference.com mà tôi đang sử dụng có vẻ chỉ là C / C ++ tiêu chuẩn. Tôi đã tìm kiếm một trang web tham khảo cụ thể cho Mac OS X XCode nhưng vẫn chưa tìm thấy. Trang web tham khảo Mac OS X C ++ tốt là gì? Hoặc, có tham chiếu C ++ được tích hợp sẵn trong XCode trợ giúp ở đâu đó và tôi vẫn chưa tìm thấy nó? Hoặc, thất bại tất cả những điều đó, có cái nào trên Trung tâm Phát triển Apple mà tôi cũng đã bỏ qua không?
Lớn như hình ảnh đĩa XCode mà tôi tải xuống và cài đặt khi được nhắc, chắc chắn ai đó có tham chiếu ngôn ngữ trong đó - ý tôi là, nội dung Java mà tôi tải xuống ban đầu rất LỚN.
Todd
Krevnik
- 8 tháng 9, 2003
- Ngày 11 tháng 6 năm 2007
toddburch nói: OK, bây giờ để strcasecmp () . Trang web cppreference.com mà tôi đang sử dụng có vẻ chỉ là C / C ++ tiêu chuẩn. Tôi đã tìm kiếm một trang web tham khảo cụ thể cho Mac OS X XCode nhưng vẫn chưa tìm thấy. Trang web tham khảo Mac OS X C ++ tốt là gì? Hoặc, có tham chiếu C ++ được tích hợp sẵn trong XCode trợ giúp ở đâu đó và tôi vẫn chưa tìm thấy nó? Hoặc, thất bại tất cả những điều đó, có cái nào trên Trung tâm Phát triển Apple mà tôi cũng đã bỏ qua không?
Nó ở đó, nhưng tôi không nghĩ rằng nó đi qua các chức năng C trong lớp POSIX, chỉ là tất cả các bổ sung của Apple cho POSIX. Bạn có thể sử dụng thiết bị đầu cuối để truy cập các trang nam trên một số chức năng này. 'man strcasecmp' sẽ đưa bạn đến ngay trang nói về hàm đó và mô tả cách sử dụng nó.
tôi hiểu rồi
- Ngày 25 tháng 10 năm 2004
- Ngày 11 tháng 6 năm 2007
http://developer.apple.com/documentation/Darwin/Reference/ManPages/index.html
là mục lục cho mọi thứ trong trang người dùng OS X, bao gồm cả các chức năng của thư viện C.
Thư viện tham chiếu Xcode truy cập các trang nam ngoài các tài nguyên khác, vì vậy tất cả các trang này đều có sẵn thông qua Xcode (tôi luôn sử dụng 'Tìm Văn bản đã Chọn trong Tham chiếu API').
Có vẻ như các hàm C nằm trong phần 3. Có vẻ như tài liệu cho mỗi hàm chứa phần 'tiêu chuẩn' hoặc 'lịch sử' cung cấp một số thông tin về tiêu chuẩn mà hàm tuân thủ. Rõ ràng strcasecmp () đã được chuyển từ 'string.h' sang 'string.h' vì lý do tuân thủ. Tôi không chắc chính xác cách nào khiến nó tuân thủ. Tôi đoán điều đó có nghĩa là các hàm không chuẩn sẽ không xuất hiện trong string.h, vì vậy họ đã chuyển nó sang một tệp tiêu đề khác. NS
tan chảy
Áp phích gốc- Ngày 4 tháng 12 năm 2006
- Katy, Texas
- Ngày 11 tháng 6 năm 2007
Bài ViếT Phổ BiếN