Làm cách nào để kiểm tra xem có phải char*
điểm biến đối với một chuỗi rỗng không?Làm cách nào để kiểm tra xem biến char * có bị biến thành chuỗi rỗng không?
Trả lời
Kiểm tra xem ký tự đầu tiên có '\ 0' hay không. Bạn cũng nên kiểm tra nếu con trỏ của bạn là NULL.
char *c = "";
if ((c != NULL) && (c[0] == '\0')) {
printf("c is empty\n");
}
Bạn có thể đặt cả hai kiểm tra này vào một chức năng để thuận tiện và dễ sử dụng lại.
Chỉnh sửa: Trong câu lệnh if có thể được đọc như sau: "Nếu c không bằng 0 và ký tự đầu tiên của mảng ký tự 'c' không phải là '\ 0' hoặc 0 thì ...".
&&
chỉ cần kết hợp hai điều kiện. Về cơ bản giống như nói điều này:
if (c != NULL) { /* AND (or &&) */
if (c[0] == '\0') {
printf("c is empty\n");
}
}
Bạn có thể muốn có một cuốn sách lập trình C tốt nếu không rõ ràng với bạn. Tôi có thể giới thiệu một cuốn sách có tên là "Ngôn ngữ lập trình C".
Phiên bản ngắn nhất tương đương với trên sẽ là:
if (c && !c[0]) {
printf("c is empty\n");
}
Kiểm tra con trỏ cho NULL
và sau đó sử dụng strlen
để xem nó có trả về 0
hay không.
NULL
kiểm tra là quan trọng vì việc chuyển số NULL
trỏ đến strlen
gọi Hành vi không xác định.
Cảm ơn rất nhiều Als – Aan
phương pháp ưa thích của tôi:
if (*ptr == 0) // empty string
Có lẽ phổ biến hơn:
if (strlen(ptr) == 0) // empty string
Chuỗi trống rỗng có một byte duy nhất. Vì vậy, kiểm tra if (s[0] == (char)0)
Không cần cho phép '(char)'. – Jens
if (!*ptr) { /* empty string */}
tương tự
if (*ptr) { /* not empty */ }
@igraczech, hmm, điều này sẽ hoạt động đối với trường hợp char * str = ""; if (! * str) {printf ("rỗng \ n"); }. tôi đã bỏ lỡ một số trường hợp tinh tế? – alvin
Xin lỗi, bạn nói đúng - đó là sự giám sát con trỏ ngu ngốc của tôi. Tôi đã có trường hợp str đã trỏ đến một địa chỉ chứa '\ 0' chỉ. Vì vậy, con trỏ (* str) là không null trong đó giá trị (nội dung của địa chỉ được trỏ tới bởi str) là null. – igraczech
Tôi muốn sử dụng chức năng strlen như các chức năng thư viện được thực hiện một cách tốt nhất.
Vì vậy, tôi sẽ viết if (strlen (p) == 0) // rỗng chuỗi
Ý tưởng tuyệt vời, cho phép lặp qua toàn bộ chuỗi (trong đó, cho tất cả các bạn biết, có thể có kích thước 2GB) chỉ để tìm hiểu xem nó có chứa ít nhất một ký tự không! –
Tôi xin lỗi .. bạn đúng .. – bhuwansahni
Tôi đã tìm thấy strlen gây ra một vụ tai nạn nếu char * là NULL ... – Todd
Cho nó một cơ hội:
Hãy thử lấy chuỗi thông qua chức năng được (string) sau đó kiểm tra điều kiện như thể (chuỗi [0] == '\ 0')
- 1. Làm cách nào để kiểm tra xem biến môi trường chưa được đặt hoặc được đặt thành chuỗi rỗng?
- 2. Biến mảng char thành chuỗi
- 3. Cách kiểm tra xem biến có trống không trong python?
- 4. kiểm tra xem biến có trống không
- 5. Làm cách nào để kiểm tra xem một int không rỗng hay rỗng?
- 6. Làm cách nào để kiểm tra xem nhiều biến có bằng cùng một giá trị không?
- 7. Có chức năng nào để kiểm tra xem biến chuỗi là giá trị số không?
- 8. Làm cách nào để kiểm tra xem biến có tồn tại trong Đề án không?
- 9. Prolog: Làm cách nào để kiểm tra xem một biến vị ngữ có tồn tại không?
- 10. Làm cách nào để kiểm tra xem biến có tồn tại trong cấu trúc ColdFusion không?
- 11. Làm cách nào để kiểm tra xem biến có chứa lambda không?
- 12. Làm cách nào để kiểm tra xem biến có tồn tại trong Smarty không?
- 13. Làm cách nào để kiểm tra xem biến enum có hợp lệ không?
- 14. GSP: kiểm tra xem mô hình (biến) là rỗng không làm việc
- 15. Làm cách nào để kiểm tra xem biến có chứa biến khác trong tệp lô cửa sổ không?
- 16. Làm cách nào để trả lại biến chuỗi đầu tiên không rỗng hoặc rỗng
- 17. Cách kiểm tra xem biến có phải là số hay chuỗi không?
- 18. Kiểm tra chuỗi rỗng hoặc không có giá trị
- 19. Kiểm tra xem biến có phải là ngày có Twig
- 20. Có cách nào để kiểm tra xem biến có phải là Ngày trong JavaScript không?
- 21. Kiểm tra xem chuỗi có trống không
- 22. Cách thích hợp để kiểm tra xem một chuỗi có rỗng trong Perl không?
- 23. Làm cách nào để kiểm tra loại biến? Python
- 24. Cách kiểm tra xem tệp có rỗng trong Bash không?
- 25. Làm thế nào để kiểm tra xem một biến là cả rỗng và/hoặc không xác định trong JavaScript
- 26. Làm cách nào để kiểm tra xem biến có phải là nguyên thủy trong PHP
- 27. Java: Cách kiểm tra xem đối tượng có rỗng không?
- 28. Có cách nào để kiểm tra biến cho "isForEachable"
- 29. Làm cách nào để xác thực xem chuỗi có phải là biến java hợp lệ không?
- 30. Kiểm tra xem biến có được khởi tạo
@Zack: 'c && c [0]' nghĩa là gì? Bạn có thể giải thích nó không? – Aan
Tôi sẽ chỉnh sửa câu trả lời. – codemaker
Cá nhân tôi sẽ tách kiểm tra cho một con trỏ NULL từ kiểm tra cho một chuỗi rỗng; cả hai không thực sự liên quan. "di động nhiều hơn" có thể không thực sự là những gì bạn đang cố gắng nói, vì tất cả các mã bạn trình bày ở đây là hợp lệ C (và C++ là tốt). –