Tìm chiều dài của một chuỗi ký tự

C++:
Tìm chiều dài của một chuỗi ký tự

Làm thế nào:

C++ cung cấp một cách trực tiếp để tìm chiều dài của một chuỗi sử dụng phương thức length() của lớp std::string. Nhưng nếu bạn là người của phong cách cũ, bạn vẫn có thể đi với chuỗi kiểu C và strlen(). Dưới đây là cả hai cách thức:

#include <iostream>
#include <string>
#include <cstring>

int main() {
    // Sử dụng std::string
    std::string greeting = "Hello, World!";
    std::cout << "Chiều dài chuỗi (std::string): " << greeting.length() << std::endl;

    // Sử dụng chuỗi kiểu C
    const char *c_greeting = "Hello, World!";
    std::cout << "Chiều dài chuỗi (kiểu C): " << strlen(c_greeting) << std::endl;

    return 0;
}

Kết quả mẫu:

Chiều dài chuỗi (std::string): 13
Chiều dài chuỗi (kiểu C): 13

Đi sâu:

Ban đầu, C++ kế thừa mảng ký tự kiểu C và hàm strlen() đi kèm từ C. strlen() tính chiều dài bằng cách di chuyển qua mảng cho đến khi nó gặp ký tự null, '\0'. Đây là một chiến lược đơn giản nhưng hiệu quả nhưng không thể bằng hiệu quả của std::string.length(), thường giữ theo dõi chiều dài cho việc truy xuất nhanh chóng.

Có lựa chọn khác? Chắc chắn rồi:

  • Bạn cũng có thể sử dụng phương thức size(), giống hệt length() cho std::string.
  • Đối với chuỗi ký tự rộng, std::wstring và phương thức length() của nó là bạn bè của bạn.
  • Lựa chọn hấp dẫn hơn bao gồm các hàm tự định nghĩa hoặc sử dụng các thuật toán như std::distance với các iterators.

Tuy nhiên, cẩn thận, std::string::length() trả về một kiểu size_t, một số nguyên không dấu, có thể khiến bạn gặp phải những hành vi không mong muốn nếu bạn trộn lẫn nó với các kiểu dấu trong biểu thức.

Xem thêm: