×

Trả về độ dài của chuỗi ký tự với hàm strlen() trong C

Trong lập trình C, việc làm việc với chuỗi ký tự là một phần quan trọng và thường xuyên trong các ứng dụng. Một trong những thao tác cơ bản nhất là xác định độ dài của một chuỗi. Hàm strlen() trong thư viện chuẩn C (string.h) được thiết kế đặc biệt để giải quyết vấn đề này.

Cách sử dụng hàm strlen()

Hàm strlen() nhận vào một con trỏ tới chuỗi ký tự (chuỗi này phải kết thúc bằng ký tự null \0) và trả về số lượng ký tự không bao gồm ký tự null đó.

Cú pháp

#include <string.h>

size_t strlen(const char *str);
  • str: Con trỏ tới chuỗi ký tự cần đo độ dài.
  • size_t: Kiểu dữ liệu không dấu, là kiểu trả về của hàm này và thường được dùng để biểu diễn kích thước hoặc số lượng phần tử.

Ví dụ cụ thể

Dưới đây là một ví dụ đơn giản minh họa cách sử dụng hàm strlen().

#include <stdio.h>
#include <string.h>

int main() {
    const char *text = "Hello, World!";
    size_t length = strlen(text);

    printf("Độ dài của chuỗi '%s' là %zu.\n", text, length);

    return 0;
}

Trong ví dụ này, chuỗi "Hello, World!" có 13 ký tự (không tính ký tự null). Kết quả là strlen(text) sẽ trả về 13.

Một số lưu ý khi sử dụng hàm strlen()

  1. Độ phức tạp thời gian: Hàm strlen() có độ phức tạp thời gian là O(n), với n là số lượng ký tự trong chuỗi. Điều này có nghĩa là hàm sẽ duyệt qua từng ký tự trong chuỗi cho đến khi gặp ký tự null.
  2. Cẩn thận với chuỗi không kết thúc bằng ký tự null: Nếu chuỗi không được kết thúc bằng ký tự null, hàm strlen() có thể tiếp tục đọc bộ nhớ ngoài giới hạn của chuỗi, gây ra lỗi chương trình hoặc hành vi không mong muốn.
  3. Chuỗi rỗng: Đối với một chuỗi rỗng, strlen() sẽ trả về 0 bởi vì ký tự đầu tiên chính là ký tự null.

So sánh với một số hàm khác

Ngoài strlen(), có một số hàm khác trong thư viện string.h có thể cần thiết khi làm việc với chuỗi:

  • strcpy(): Sao chép nội dung của một chuỗi vào một chuỗi khác.
  • strcat(): Nối thêm một chuỗi vào cuối một chuỗi khác.
  • strcmp(): So sánh hai chuỗi với nhau.

Ví dụ về hàm strcpy()

char dest[50];
const char *src = "Copy this!";
strcpy(dest, src);
printf("%s\n", dest); // Output: Copy this!

Trong ví dụ này, nội dung của chuỗi src sẽ được sao chép vào mảng dest.

Kết luận

Việc hiểu và sử dụng hàm strlen() đúng cách là một phần quan trọng trong lập trình C khi làm việc với chuỗi ký tự. Nó giúp lập trình viên dễ dàng xác định độ dài của chuỗi, từ đó thực hiện các thao tác khác một cách chuẩn xác hơn. Bằng cách tuân thủ các lưu ý và sử dụng đúng cú pháp, việc đo độ dài chuỗi trở nên đơn giản và hiệu quả.

Comments