Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Khác biệt giữa strlen() và sizeof() cho chuỗi trong C


Tổng quan

Như chúng ta biết, trong lập trình chuỗi (string) được định nghĩa là tập hợp các ký tự. Để tìm hiểu số lượng ký tự tạo thành một chuỗi, C cung cấp hai phương pháp: strlen() và sizeof().

Cả hai phương pháp này đều dùng để tìm độ dài của toán hạng mục tiêu, nhưng dựa trên triển khai nội bộ, có những khác biệt cơ bản sau:

STT Tiêu chí strlen() sizeof()
1 Định nghĩa strlen() là hàm định nghĩa sẵn trong thư viện string.h của C. sizeof() là một toán tử đơn ngôi (unary operator), không phải hàm định nghĩa sẵn.
2 Triển khai strlen đếm số ký tự trong chuỗi, loại trừ ký tự null kết thúc (trả về độ dài chuỗi kết thúc bằng null). sizeof tính kích thước thực tế của bất kỳ kiểu dữ liệu nào (đã cấp phát) tính bằng byte, bao gồm cả ký tự null.
3 Xử lý null strlen loại bỏ null và không tính nó vào tổng độ dài chuỗi. sizeof không quan tâm giá trị biến, tính kích thước thực tế tính bằng byte (bao gồm cả null).