Lấy kích thước string trong C++ | Laptrinhcanban.com

Lấy kích thước string trong C++

Hướng dẫn cách lấy kích thước string trong C++. Bạn sẽ học được cách dùng hàm size và hàm length để lấy kích thước string trong C++ sau bài học này.

Lấy kích thước string trong C++ bằng hàm length

Hàm length là một hàm thành viên trong class std:string, có tác dụng lấy kích thước string trong C++ dưới dạng byte.

Cú pháp của hàm length trong C++ như sau:

str.length();

Trong đó str là chuỗi cần kiểm tra.

Hàm length sẽ trả về tổng số byte được tạo thành từ các ký tự tạo nên chuỗi. Lưu ý đây không phải là kích thước thực của string trong bộ nhớ, mà là kích thước được tính từ tổng các thành phần tạo nên string.

Ví dụ như một string tạo bởi 2 ký tự, mỗi ký tự 1 byte thì hai hàm trên sẽ trả về giá trị bằng 2 chẳng hạn, trong khi
kích thước thực tế để lưu string này trên bộ nhớ có thể được gia giảm phù hợp.

Do vậy, kết quả của hàm này đôi khi cũng chính là độ dài string hay là số ký tự có trong string, trong trường hợp mỗi ký tự trong string đều được biểu diễn bởi 1 mã ký tự có kích thước 1 byte.

Ví dụ cụ thể, chúng ta lấy kích thước string trong C++ bằng hàm length như sau:

#include <iostream>
#include <string>
using namespace std;

int main ()
{
string str1("Hello world");
cout<<str1.length()<<endl;

string str2= "Tokyo";
cout<<str2.length()<<endl;
return 0;
}

Kết quả:

11
5

Với string “Hello world” ở trên, do các ký tự tạo string đều được biểu diễn bởi 1 mã ký tự, nên kết quả tính kích thước string bằng 2 hàm size và length cũng chính là số ký tự có trong string.

Lấy kích thước string trong C++ bằng hàm size

Hàm size là một hàm thành viên trong class std:string, có tác dụng lấy kích thước string trong C++ dưới dạng byte.

Hàm size được cho là có tính tương hỗ khi sử dụng cùng với vector trong C++.

Cú pháp của hàm size trong C++ như sau:

str.size();

Trong đó str là chuỗi cần kiểm tra.

Hàm size sẽ trả về tổng số byte được tạo thành từ các ký tự tạo nên chuỗi. Lưu ý đây không phải là kích thước thực của string trong bộ nhớ, mà là kích thước được tính từ tổng các thành phần tạo nên string.

Ví dụ như một string tạo bởi 2 ký tự, mỗi ký tự 1 byte thì hai hàm trên sẽ trả về giá trị bằng 2 chẳng hạn, trong khi
kích thước thực tế để lưu string này trên bộ nhớ có thể được gia giảm phù hợp.

Do vậy, kết quả của hàm này đôi khi cũng chính là độ dài string hay là số ký tự có trong string, trong trường hợp mỗi ký tự trong string đều được biểu diễn bởi 1 mã ký tự có kích thước 1 byte.

Ví dụ cụ thể, chúng ta lấy kích thước string trong C++ bằng hàm size như sau:

#include <iostream>
#include <string>
using namespace std;

int main ()
{
string str1("Hello world");
cout<<str1.size()<<endl;

string str2= "Tokyo";
cout<<str2.size()<<endl;
return 0;
}

Kết quả:

11
5

Với string “Hello world” ở trên, do các ký tự tạo string đều được biểu diễn bởi 1 mã ký tự, nên kết quả tính kích thước string bằng 2 hàm size và size cũng chính là số ký tự có trong string.

Chú ý khi lấy kích thước string với chuỗi tạo bởi ký tự UTF-8

Ở phần trên chúng ta đã biết với các chuỗi được tạo thành bởi các ký tự được biểu diễn bởi 1 mã ký tự, do kích thước của các ký tự như vậy cũng là 1 byte, nên kết quả tính kích thước string bằng 2 hàm size và length cũng chính là số ký tự có trong string đó.

Tuy nhiên trong trường hợp chuỗi được tạo ra bởi các ký tự được biểu diễn bởi các ký tự UTF-8 vốn được biểu diễn bởi 2 mã ký tự, ví dụ như là tiếng Việt có dấu, hay kanji tiếng Nhật chẳng hạn, thì kích thước string sẽ lớn hơn số ký tự có trong string. Ví dụ:

#include <iostream>
#include <string>
using namespace std;

int main ()
{
string str("Hà Nội");
cout<<str.size()<<endl;

string str2("東京");
cout<<str2.size()<<endl;
return 0;
}

Kết quả:

9
6

Có thể thấy rõ kích thước chuỗi trong các trường hợp này sẽ lớn hơn số ký tự có trong chuỗi đó.

Do vậy cần lưu ý trong một trường hợp, kích thước mà bạn tính thông qua việc đếm số ký tự có thể không chính xác bằng việc dùng một trong 2 hàm trên để tính.

Sự khác nhau giữa hàm size và hàm length

Hàm size và hàm length là các hàm đồng nghĩa, và giá trị trả về của chúng đều giống nhau. Bởi vậy hai hàm này trong C++ thực ra là giống nhau, và chúng ta có thể lựa chọn bất kỳ một trong số chúng để lấy kích thước string trong C++.

Thông thường thì chúng ta sẽ dùng hàm length để tính kích thước string trong C++, tuy nhiên thì hàm size được cho là có tính tương hỗ khi sử dụng với vector trong C++, nên có lẽ vì thế mà các nhà phát triển ngôn ngữ C++ đã tạo thêm hàm size chăng.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách lấy kích thước string trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.