Chuỗi kiểu C phần 2
Thuộc phần Kiến thức nền tảng trong hành trình C++ của Coddy. Bài học 68 trên 74.
Bạn cần nhớ rằng khi khai báo một chuỗi kiểu C với kích thước cụ thể, bạn phải cấp đủ chỗ cho các ký tự muốn lưu trữ, cộng thêm một chỗ cho ký tự null.
Ví dụ:
// Đúng: "Hello" cần 6 ô nhớ
// (5 chữ cái + '\0')
char str1[6] = "Hello";// Sai: Mảng quá nhỏ!
// "Hello" cần 6 ô, nhưng chỉ có 5 ô
char str2[5] = "Hello";
// Lỗi: không thể biên dịch vì chỉ có 5 ô cho 6 ký tự ('H','e','l','l','o','\0')// Đúng: Dư chỗ trống cũng không sao
// Dư nhiều chỗ trống (10 > 6 cần thiết)
char str3[10] = "Hello";// Ví dụ minh họa số ký tự:
char name[5] = "John"; // Cần 5 vị trí:
// J + o + h + n + '\0' = 5 ký tựBạn có thể truy cập từng ký tự trong chuỗi kiểu C bằng ký hiệu mảng:
char str[] = "Hello";
char first = str[0]; // 'H'
char third = str[2]; // 'l'Bạn cũng có thể sửa các ký tự trong chuỗi kiểu C, miễn là không vượt quá giới hạn của mảng:
char str[] = "Hello";
str[0] = 'J';
std::cout << str; // In ra "Jello"Tuy nhiên, bạn không thể gán trực tiếp một chuỗi mới cho chuỗi kiểu C sau khi đã khai báo. Bạn cần dùng các hàm như strcpy để sao chép chuỗi. Mình sẽ hướng dẫn bạn cách này trong các bài học sau.
Tự làm thử
Bài học này không có thử thách code.
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 Kiến thức nền tảng
6Ra quyết định
Câu lệnh ifIf và elseCâu lệnh switchToán tử điều kiệnÔn tập if và elseIf và else lồng nhau9Vòng lặp
Vòng lặp for phần 1Vòng lặp whileVòng lặp do whileBreakContinueVòng lặp for phần 2Vòng lặp lồng nhauVòng lặp vô hạnÔn tập: đầu vào động12Chuỗi
Chuỗi kiểu C phần 1Chuỗi kiểu C phần 2Các thao tác với chuỗiCác hàm xử lý chuỗi phần 1Các hàm xử lý chuỗi phần 2Tự luyện tập: Trình biên dịch C++ online