Menu
CoddyTech

Dùng strlen()

Thuộc phần Logic và luồng điều khiển trong hành trình C của Coddy. Bài học 15 trên 63.

Bạn đã học cách đọc chuỗi từ đầu vào của người dùng, nhưng giờ bạn cần một cách để xác định độ dài của những chuỗi đó. C cung cấp hàm strlen() từ thư viện <string.h> dành riêng cho mục đích này.

Hàm (function) strlen() đếm số ký tự trong một chuỗi và dừng khi gặp ký tự kết thúc null \0. Điều quan trọng là hàm không tính ký tự kết thúc null vào số lượng, mà chỉ đếm các ký tự hiển thị thực tế.

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

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // In ra: Length: 5

Để dùng strlen(), bạn cần thêm tiêu đề <string.h> ở đầu chương trình. Hàm (function) này nhận một chuỗi làm đối số và trả về một số nguyên biểu thị số ký tự trước ký tự kết thúc null.

Hàm (function) này đặc biệt hữu ích khi bạn cần biết một chuỗi chiếm bao nhiêu chỗ, kiểm tra độ dài đầu vào hoặc thực hiện các thao tác phụ thuộc vào kích thước chuỗi. Đây là một trong những hàm chuỗi được dùng phổ biến nhất trong lập trình C.

challenge icon

Thử thách

Dễ

Viết một chương trình C đọc nhiều từ từ đầu vào và phân tích độ dài của chúng bằng hàm strlen(). Chương trình của bạn cần:

  1. Đọc một số nguyên n biểu thị số từ cần xử lý
  2. Với mỗi từ trong số n từ:
    • Khai báo một mảng ký tự có 50 phần tử để lưu từ đó
    • Đọc từ bằng scanf
    • Dùng strlen() để tính độ dài của từ
    • In từ và độ dài của từ theo định dạng đã chỉ định
  3. Sau khi xử lý tất cả các từ, tính và in tổng số ký tự trong tất cả các từ
  4. Tìm và in độ dài của từ dài nhất đã gặp

Nhớ thêm tiêu đề <string.h> để sử dụng hàm strlen().

Đầu ra cần hiển thị kết quả theo định dạng sau:

Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]

Ví dụ, nếu đầu vào là:

3
hello
programming
C

Đầu ra sẽ là:

Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11

Thử thách này kiểm tra mức độ hiểu biết của bạn về cách dùng strlen() để đo độ dài chuỗi, xử lý nhiều chuỗi bằng vòng lặp và thực hiện các phép tính dựa trên dữ liệu độ dài chuỗi.

Tự làm thử

    // TODO: Viết code của bạn tại đây
    // Xử lý từng từ bằng vòng lặp (loop)
    // Với mỗi từ:
    // - Khai báo mảng (array) ký tự (character) gồm 50 phần tử (element)
    // - Đọc từ bằng scanf
    // - Tính độ dài bằng strlen()
    // - In ra từ và độ dài của từ
    // - Cập nhật total_characters và max_length
    
    // In ra kết quả cuối cùng
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng điều khiển

Tự luyện tập: Trình biên dịch C online