Copy String Trong C++
Có thể bạn quan tâm
Hướng dẫn cách copy string trong C++. Bạn sẽ học được cách sử dụng hàm copy và substr để sao chép string trong C++ sau bài học này.
Chúng ta có 2 phương pháp để copy string trong C++ như sau:
- Sử dụng hàm copy
- Sử dụng hàm substr
Copy string trong C++ bằng hàm copy
Hàm copy trong C++
Hàm copy là một hàm thành viên trong class std:string, có tác dụng sao chép một phần hoặc toàn bộ chuỗi string ban đầu, bằng cách chỉ định vị trí cũng như số ký tự cần sao chép.
Như các hàm khác trong class str:string thì để sử dụng hàm copy, chúng ta cần include header file string vào đầu chương trình.
Cú pháp sử dụng hàm copy để sao chép string trong C++ như sau:
src.copy(des, length, pos);
Trong đó:
- src là chuỗi string ban đầu
- des là mảng ký tự chứa kết quả. Lưu ý mảng ký tự này phải có đủ độ dài để chứa chuỗi kết quả.
- pos là vị trí bắt đầu copy. Nếu lược bỏ pos thì sẽ bắt đầu copy từ đầu chuỗi string
- length là độ dài (số ký tự) cần copy. Lưu ý giá trị của length phải không lớn hơn số ký tự có thể được copy
Hàm copy sẽ trả về số ký tự đã copy từ chuỗi string src vào mảng ký tự des.
Lưu ý, trong trường hợp chúng ta copy một phần của chuỗi ban đầu thì ký tự kết thúc chuỗi \0 sẽ không bao gồm trong kết quả, vì thế đừng quên thêm ký tự \0 sau kết quả sao chép chuỗi nhé.
Copy n ký tự từ đầu chuỗi string
Để copy n ký tự từ đầu chuỗi string, chúng ta lược bỏ đi đối số pos khi sử dụng hàm copy trong C++ là xong. Ví dụ cụ thể:
using namespace std;int main (){ //String nguồn string str("Hello world"); //Khai báo mảng ký tự chứa kết quả char des[100]; size_t length; length= str.copy(des,6); //Copy 6 ký tự từ đầu chuỗi string vào des des[length]='\0'; //Thêm ký tự kết thúc chuỗi cout<<des<<endl; length= str.copy(des,3); //Copy 3 ký tự từ đầu chuỗi string vào des des[length]='\0'; //Thêm ký tự kết thúc chuỗi cout<<des<<endl; return 0;} |
Kết quả:
Hello Hel |
Lưu ý là đừng quên thêm ký tự kết thúc chuỗi \0 vào kết quả copy chuỗi nhé.
Copy n ký tự từ vị trí m trong string
Khi chỉ định đầy đủ các đối số pos và length trong hàm copy, chúng ta có thể tiến hành copy n ký tự từ vị trí m trong string. Ví dụ cụ thể:
using namespace std;int main (){ //String nguồn string str("Hello world"); //Khai báo mảng ký tự chứa kết quả char des[100]; size_t length; //Copy 3 ký tự từ vị trí thứ 2 vào des length= str.copy(des,3, 2); des[length]='\0'; cout<<des<<endl; //Copy 6 ký tự từ vị trí thứ 2 vào des length= str.copy(des,6, 2); des[length]='\0'; cout<<des<<endl; return 0;} |
Kết quả:
llollo wo |
Copy toàn bộ chuỗi string trong C++
Để copy toàn bộ chuỗi string trong C++, chúng ta cần phải chỉ định số lượng ký tự cần copy chính bằng độ dài chuỗi string ban đầu là xong. Ví dụ cụ thể:
using namespace std;int main (){ //String nguồn string str("Hello world"); //Khai báo mảng ký tự chứa kết quả char des[100]; size_t length; //Copy toàn bộ chuỗi string vào des length= str.copy(des,str.size()); des[length]='\0'; cout<<des<<endl; return 0;} |
Kết quả:
Hello world |
Lưu ý là trong trường hợp copy toàn bộ chuỗi string thì ký tự kết thúc chuỗi \0 cũng bao gồm luôn trong kết quả, do đó chúng ta không cần phải thêm ký tự này vào mảng ký tự kết quả như trong các trường hợp khác.
Copy string trong C++ bằng hàm substr
Chúng ta cũng có thể sử dụng hàm substr() để copy một phạm vi chỉ định từ trong string ban đầu. Ví dụ cụ thể:
using namespace std;int main() { string str = "Hello World!"; string substr = str.substr(1, 3); cout << substr << endl; string substr2 = str.substr(1,6); cout << substr2 << endl; return 0;} |
Kết quả, các chuỗi string được copy trong phạm vi chỉ định như sau:
ellello W |
Chi tiết về hàm substr xin vui lòng xem tại bài viết:
- Xem thêm: Hàm substr trong C++
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về các cách copy 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.
URL Link
https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/string-trong-cpp/copy-string-trong-cpp/
Từ khóa » Cách Copy Chuỗi Trong C++
-
Copy Chuỗi Trong C++ (strcpy, Strcpy_s, Strncpy)
-
Bài Tập C++ - Sao Chép Chuỗi Trong C++ - VietTuts
-
Lập Trình C++ - Sao Chép Chuỗi
-
Cách Sao Chép Chuỗi Trong C
-
Xâu Trong C++ - VNOI
-
Hướng Dẫn Và Ví Dụ C/C++ String - Openplanning
-
Chuỗi Trong C++ - Thủ Thuật
-
Hàm Xây Dựng Sao Chép (Copy Constructor) Trong C++ - Freetuts
-
LTC 72. Lập Trình Copy Hai Chuỗi Trong C, Hàm Strcpy Trong - YouTube
-
Hàm Strcpy() Trong C / C++ - Freetuts
-
Chuỗi (String) Trong C/C++
-
[Wiki] Các Hàm Xử Lý Chuỗi Thông Dụng Trong C/C++ - Dạy Nhau Học
-
Lớp String Trong C++ Và Các Hàm Thường Dùng Của Lớp String