Computer >> Máy Tính >  >> Lập trình >> lập trình C

Sự khác biệt giữa strlen () và sizeof () cho chuỗi trong Chương trình C

Như chúng ta biết rằng trong lập trình chuỗi có thể được định nghĩa là tập hợp các ký tự. Bây giờ đối với yêu cầu tìm bao nhiêu ký tự đang được sử dụng để tạo một chuỗi, C cung cấp hai cách tiếp cận là strlen () và sizeof ().

Như đã đề cập ở phần trên, cả hai phương pháp này đều được sử dụng để tìm ra độ dài của toán hạng mục tiêu nhưng trên cơ sở triển khai nội bộ của chúng, sau đây là một số khác biệt cơ bản giữa cả hai.

Sr. Không. Phím strlen () sizeof ()
1 Định nghĩa strlen () là một hàm được xác định trước được định nghĩa trong tệp Header có tên string.h trong C. Mặt khác sizeof () là một toán tử đơn nguyên và không phải là một hàm được xác định trước.
2 Triển khai strlen được triển khai nội bộ vì nó chủ yếu đếm số ký tự trong một chuỗi không bao gồm giá trị null, tức là trả về độ dài của chuỗi kết thúc null. Trong khi sizeof được triển khai theo cách nó tính toán kích thước thực của bất kỳ loại dữ liệu nào (được phân bổ) theo byte (bao gồm cả giá trị null).
3 Xử lý rỗng strln loại trừ null và không bao gồm nó trong tổng tính toán độ dài của chuỗi. Mặt khác, sizeof không quan tâm đến giá trị của biến và tính kích thước thực của bất kỳ loại dữ liệu nào (được cấp phát) theo byte (bao gồm cả giá trị null).