Bài 9: Chuỗi trong C/C++ (Phần 1)

Chào các bạn, hôm nay mình lại hướng dẫn tiếp tục cho các bạn về chuỗi trong lập trình C++ nhé. Những bài trước đó mình hướng dẫn các bạn đã nắm rõ hết chưa nhỉ?. Hi vọng là các bạn sẽ thích thú với chúng. Được rồi, giờ thì chúng ta lại tiếp tục học thôi nào!

Chuỗi là gì (String)? 

Chuỗi gồm nhiều ký tự đơn kết hợp lại thành một chuỗi và kiểu dữ liệu string dùng để lưu trữ dữ liệu dạng chuỗi. Chuỗi được bao quanh bởi dấu ".

Mình sẽ làm một ví dụ cho các bạn dễ hình dung nhé.

string chuoi = "Huy Coder đẹp trai quá!";

Và các bạn phải nhớ là khi sử dụng chuỗi các bạn phải cài thư viện <string> vào nhé. Cụ thể là như này nè

// Cài thư viện chuỗi
#include <string>

// Cách khai báo
string chuoi = "Huy Coder đẹp troai quá!";

Nối chuỗi (String Concatenation):

Giả sử giờ chúng ta có 2 chuỗi được khai báo bởi 2 biến và mình muốn cùng hiển thị như thế nào nhỉ?

string ho = "Fukada";
string ten = "Eimi";
string tenDayDu = ten + ho;
cout << tenDayDu;

Mẫu ví dụ trên bạn vừa nhìn thấy trong lập trình người ta gọi là nối chuỗi nhé. Mình đã tạo biến ho là Fukada và biến ten là Eimi. Sau đó mình tạo biến tenDayDu để chứa giá trị của 2 biến ho, ten cộng lại và mình in ra màn hình biến tenDayDu.

Nhưng cách này do 2 chuỗi được nối liên tiếp nhau và không có khoảng trắng nên mình sẽ nhận lại kết quả như thế này:

EimiFukada

Cách khác phục là bạn có thể thêm khoảng cách trong giá trị của chữ như ví dụ trên. Hoặc bạn có thể dùng cách chen chuỗi vào các biến như thế này nhé:

string ho = "Fukada";
string ten = "Eimi";
string tenDayDu = ten + " " + ho;
cout << tenDayDu;

Nối thêm (Append)

Thật ra chuỗi là một đối tượng và chứa nhiều hàm để bạn có thể sử dụng và trong ví dụ này thì chúng ta có hàm append() để có thể nối chuỗi. Mình sẽ cho bạn xem một ví dụ:

string ho = "Fukada ";
string ten = "Eimi";
string tenDayDu = ten.append(ho);
cout << tenDayDu;

Ví dụ trên là chuỗi đầu của mình là biến ten sau đó mình mới dùng hàm append() để mình nối thêm biến ho vào. Bạn có thể thử nhé!

Nối chuỗi và số (Numbers and Strings)

C++ cho phép sử dụng toán tử + để cộng cả chuỗi được và cộng cả số được bạn nhé.

Ví dụ như bạn cộng 2 số lại thì:

int so1 = 15;
int so2 = 15;
int ketQua = so1 + so2;      // ketQua sẽ là 30 (dùng kiểu số)

Còn nếu bạn cộng 2 chuỗi lại thì:

string so1 = "15";
string so2 = "15";
string ketQua = so1 + so2;      // ketQua sẽ là 1515 (dùng kiểu chuỗi)

Bạn có hiểu vì sao không?. Vì khi ta khai báo 2 biến có kiểu dữ liệu là số (số nguyên, số thực,..) thì chương trình sẽ hiểu là chúng ta muốn cộng 2 số lại. Còn nếu bạn khai báo kiểu dữ liệu là chuỗi và cộng lại với nhau thì chương trình sẽ hiểu là chuỗi ký tự (có ký tự là dạng số)  nên sẽ cộng nối tiếp nhau như những ví dụ đầu mình học. Như vậy các bạn đã hiểu rồi hen. Vậy nếu chúng ta khai báo 1 biến là kiểu số, 1 biến là kiểu chuỗi và cộng chúng lại với nhau có được không nhỉ. Bạn thử xem?

Đếm độ dài chuỗi (String Length)

Giả sử chúng ta muốn biết độ dài của chuỗi là bao nhiêu ký tự thì chúng ta phải làm sao?

string chuoi = "Huy Coder đẹp troai quá!";
cout << "Độ dài của chuỗi là: " << chuoi.length();

Và đây là cách để đếm độ dài của một chuỗi bằng cách bạn sử dụng hàm length() . Bạn cũng có thể sử dụng hàm size() để đếm nữa nhé.

string chuoi = "Huy Coder đẹp troai quá!";
cout << "Độ dài của chuỗi là: " << chuoi.size();

Bài học đến đây đã quá dài rồi mình xin kết ở đây nhé, mời bạn qua bài tiếp theo học về chuỗi nhé còn vài phần chuyên sau hơn mình sẽ nói với các bạn ở bài sau. Chúc các bạn học lập trình vui vẽ nhớ là theo dõi website của mình để cập nhật những kiến thức mới nhất nhé. Mình cảm ơn các bạn đã đọc bài viết.

Bài trước Bài kế tiếp

Bài viết mới nhất

Bài 8: Toán tử trong C/C++
159
0
Đào Thanh Huy
Bài 8: Toán tử trong C/C++

20/03/2023 14:36:34

Bài 7: Kiểu dữ liệu trong C/C++
96
0
Đào Thanh Huy
Bài 6: Tìm hiểu Biến, Hằng số trong C/C++
164
0
Đào Thanh Huy
Bài 5: Cách comment code trong C/C++
115
0
Đào Thanh Huy

Khách hàng tiêu biểu

Lựa chọn hàng đầu của 30.000+ Khách hàng, Doanh nghiệp.

Chat hỗ trợ
Chat ngay
Gọi ngay