Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
String trong C++/C là gì? Cách dùng chuỗi C++/C như thế nào? Ở bài viết này, hãy cùng Quantrimang.com tìm hiểu những điều cần biết về chuỗi trong C++ nhé!
C++ cung cấp hai kiểu biểu diễn chuỗi như sau:
Trong quá trình học code C++ bạn có thể dùng C++ online editor này để kiểm tra code nhanh mà không cần mở IDE trên máy.
Dạng chuỗi này bắt nguồn từ ngôn ngữ C và tiếp tục được hỗ trợ trong C/C++. Chuỗi trong ngôn ngữ lập trình C thực chất là mảng một chiều của các ký tự mà kết thúc bởi một ký tự null '\0'.
Phần khai báo và khởi tạo dưới đây tạo ra một chuỗi bao gồm một từ "Hello". Để giữ các giá trị null tại cuối của mảng, cỡ của mảng các ký tự bao gồm một chuỗi phải nhiều hơn số lượng các ký tự trong từ khóa "Hello".
char loiChao[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
Nếu bạn theo quy tắc khởi tạo các chuỗi, bạn có thể viết lệnh như sau:
char loiChao[] = "Hello";
Dưới đây là phần biểu diễn ô nhớ cho đoạn chuỗi trên trong ngôn ngữ C/C++:

Thực tế, bạn không đặt ký tự null tại vị trí cuối cùng của biến hằng số. Bộ biên dịch C tự động thêm '\0' tại ví trí cuối cùng của chuỗi khi nó khởi tạo chuỗi. Cùng thử ví dụ in ra chuỗi sau đây:
#include <iostream>
using namespace std;
int main ()
{
char loiChao[9] = {'X','i','n',' ','c','h','a','o', '\0'};
cout << "Khi gap nhau, chung ta noi: ";
cout << loiChao << endl;
return 0;
}
Khi đoạn code trên được biên dịch và thực hiện, kết quả in ra sẽ như sau:
Khi gap nhau, chung ta noi: Xin chao
Ngôn ngữ C/C++ hỗ trợ nhiều hàm đa dạng để thao tác các chuỗi kết thúc là null:
| STT | Hàm & Mục đích |
|---|---|
| strcpy(s1, s2); |
Sao chép chuỗi s2 cho chuỗi s1. |
| strcat(s1, s2); |
Nối chuỗi s2 vào cuối chuỗi s1. |
| strlen(s1); |
Trả về độ dài của chuỗi s1. |
| strcmp(s1, s2); |
Trả về 0 nếu s1 và s2 là như nhau; nhỏ hơn 0 nếu s1<s2; lớn hơn 0 nếu s1>s2. |
| strchr(s1, ch); |
Trả về con trỏ tới vị trí đầu tiên của ch trong s1. |
| strstr(s1, s2); |
Trả về con trỏ tới vị trí đầu tiên của chuỗi s2 trong chuỗi s1. |
Dưới đây là ví dụ cho việc sử dụng một vài hàm bên trên:
#include <iostream>
#include <cstring>
using namespace std;
int main ()
{
char chuoi1[10] = "Hello";
char chuoi2[10] = "Christmas";
char chuoi3[10];
int len;
// sao chep chuoi1 vao trong chuoi3
strcpy(chuoi3, chuoi1);
cout << "strcpy(chuoi3, chuoi1): " << chuoi3 << endl;
// noi hai chuoi: chuoi1 va chuoi2
strcat(chuoi1, chuoi2);
cout << "strcat(chuoi1, chuoi2): " << chuoi1 << endl;
// tong do dai cua chuoi1 mot sau khi thuc hien noi chuoi
len = strlen(chuoi1);
cout << "Dung ham strlen(chuoi1) de tinh do dai chuoi1: " << len << endl;
return 0;
}
Chạy chương trình C/C++ trên sẽ cho kết quả như hình sau:

Thư viện chuẩn C/C++ cung cấp một kiểu lớp String mà hỗ trợ tất cả hoạt động liên quan tới chuỗi đã đề cập ở trên, và bổ sung thêm nhiều tính năng nữa. Chúng ta sẽ học lớp này trong Thư viện chuẩn C/C++ (C++ Standard Library), nhưng lúc này, chúng ta xem xét ví dụ sau:
Lúc này, có thể bạn không hiểu ví dụ này, bởi vì chúng ta chưa bàn luận về Lớp và Đối tượng trong C/C++. Vì thế, bạn quan sát và ghi nhớ chúng tới khi bạn đã hiểu các khái niệm về Hướng đối tượng được trình bày ở chương sau đó.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string chuoi1 = "Hello";
string chuoi2 = "Christmas";
string chuoi3; int len;
// sao chep chuoi1 vao trong chuoi3
chuoi3 = chuoi1;
cout << "Bay gio chuoi3 la: " << chuoi3 << endl;
// noi hai chuoi: chuoi1 va chuoi2
chuoi3 = chuoi1 + chuoi2;
cout << "chuoi1 + chuoi2 co ket qua la: " << chuoi3 << endl;
// tong do dai cua chuoi3 mot sau khi thuc hien noi chuoi
len = chuoi3.size();
cout << "Tinh do dai voi ham chuoi3.size(): " << len << endl;
return 0;
}
Chạy chương trình C/C++ trên sẽ cho kết quả như hình sau:

|
Chuỗi |
Ký tự mảng |
| Một string hay chuỗi là một class xác định đối tượng có thể, được biểu thị bằng một dòng các ký tự. | Một mảng ký tự đơn giản đúng như tên gọi của nó. Một ký tự null có thể kết thúc mảng này. |
| Trong trường hợp của string, bộ nhớ được cấp phát động. Nhiều bộ nhớ hơn có thể được phân bổ trong thời gian chạy theo yêu cầu. Vì không có bộ nhớ nào được phân bổ trước nên không có bộ nhớ nào bị lãng phí. | Kích thước của mảng ký tự phải được phân bổ dưới dạng tĩnh. không thể cấp phát thêm bộ nhớ trong thời gian chạy nếu cần. Bộ nhớ được phân bổ không sử dụng cũng bị lãng phí |
|
Khi chuỗi đại diện cho đối tượng, không có sự phân rã mảng. |
Có một mối đe dọa phân rã mảng khi dùng mảng ký tự. |
| Chuỗi chạy chậm hơn khi so sánh với mảng triển khai với mảng ký tự. | Việc triển khai mảng ký tự nhanh hơn chuỗi std::. |
|
Class string xác định một số chức năng cho phép thực hiện các thao tác đa dạng trên chuỗi. |
Mảng ký tự không cung cấp sẵn nhiều hàm để thao tác với chuỗi. |
Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Karaoke Người Đó Tôi Đây Tình Đâu(Midi)
Chuyển tin nhắn Messenger thành bài hát trong nháy mắt
Cách xây dựng game nhiều người chơi với Claude Opus 5.5
Cách xem thời tiết trong ChatGPT với AccuWeather để lên kế hoạch
Karaoke Lạnh (Midi)
Cách kết nối ElevenLabs AI agent với Exa
Thiết lập cách ChatGPT thông báo cho bạn khi có công việc cần chú ý
TOP phần mềm OCR scan tài liệu có tích hợp AI tốt nhất
6 trang web tạo mật khẩu ngẫu nhiên an toàn đáng tin cậy
TOP nền tảng xây dựng công cụ nội bộ có tích hợp AI
TOP phần mềm AI bảo mật Internet tốt nhất hiện nay
Biến các ý tưởng thành giải thích trực quan, tương tác trong ChatGPT
TOP tiện ích mở rộng AI cho VS Code tốt nhất
Cách tạo website Portfolio miễn phí bằng ChatGPT
6 lựa chọn thay thế Visual Studio Code tốt nhất có tích hợp AI
Tạo form hỏi đáp tương tác trong vài phút và prompt chỉnh sửa
Hướng dẫn sử dụng Google Slides trong Claude
Hướng dẫn sử dụng Wolfram trong ChatGPT giải toán nâng cao
15 prompt AI thú vị cho ngày lễ Halloween
Hoàn thiện một thiết kế thực tế với ChatGPT + Canva
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows
Claude Code thực sự có giá bao nhiêu?
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10
5 tài liệu hay nhất giúp bạn làm chủ Small Language Model (SLM) năm 2026