Strcpy Là Gì

  -  
." data-image="https://f.onaga.vn/Upload/cke/images/1_LOGO%20SHOW%20WEB/2_CPlusPlus/1_CPlusPlus%20C%C6%A1%20b%E1%BA%A3n/CPP%20Basic%20onaga.vn%2038.jpg" data-toggle="tooltip" data-placement="right" data-original-title="Chia sẻ lên facebook">
Kchất hóa học Lập trình Lập trình C++ Kchất hóa học lập trình C++ căn phiên bản Các làm việc bên trên Mảng cam kết từ bỏ (C-style strings)
." data-image="https://f.onaga.vn/Upload/cke/images/1_LOGO%20SHOW%20WEB/2_CPlusPlus/1_CPlusPlus%20C%C6%A1%20b%E1%BA%A3n/CPP%20Basic%20onaga.vn%2038.jpg" data-toggle="tooltip" data-placement="right" data-original-title="Chia sẻ lên facebook">

Dẫn nhập

Tại bài học trước, mình đã share cho các bạn thực chất cùng bí quyết thực hiện MẢNG KÝ TỰ TRONGC++ (C-style strings).

Bạn đang xem: Strcpy là gì

Hôm nay, mình sẽ trình làng đến các bạn về Các thao tác làm việc bên trên Mảng ký từ (C-style strings) trong C++.

Nội dung

Để đọc đọc bài xích này rất tốt các bạn buộc phải có kỹ năng và kiến thức cơ bản về:

Trong bài xích ta đang cùng tìm hiểu các vấn đề:

Một số thao tác với mảng ký kết trường đoản cú (C-style strings)

Một số thao tác với mảng cam kết tự (C-style strings)

Ngôn ngữ C++ hỗ trợ nhiều hàm nhằm thao tác cùng với mảng ký kết từ bỏ (C-style strings), hầu như hàm này được tư tưởng phía bên trong thư viện .

Trong bài học này, mình đang ra mắt một trong những hàm thường xuyên được áp dụng duy nhất trong C++.

Xem độ dài mảng ký trường đoản cú (C-style strings)

Để hiểu rằng độ nhiều năm mảng ký tự (không bao gồm cam kết từ bỏ null ‘’), chúng ta cũng có thể sử dụng hàm strlen().

#include #include using namespace std;int main(){char szTeam<20> = "Kteam"; // mảng bao gồm 20 phần tử (5 ký tự hay, 15 cam kết trường đoản cú "")cout Output:

*

Lưu ý: Hàm strlen() in ra số ký kết từ trước cam kết tự ‘’ null, trong khi sizeof() trả về form size của cục bộ mảng.

Chuyển mảng ký kết từ (C-style strings) sang trọng chữ hoa cùng chữ thường

Để gửi 1 chuỗi từ bỏ chữ thường sang chữ in hoa với ngược chở lại, bạn có thể thực hiện 2 hàm:

strlwr(): đưa chuỗi s thành chuỗi hay (‘A’ thành ‘a’, ‘B’ thành ‘b’, …, ‘Z’ thành ‘z’).strupr(): đưa chuỗi s thành chuỗi IN hoa (‘a thành ‘A’, ‘b’ thành ‘B’, …, ‘z’ thành ‘Z’).

Ví dụ:

#define _CRT_NONSTDC_NO_DEPRECATE#include #include using namespace std;int main(){char szString1<> = "Hello onaga.vn.com!";char szString2<> = "Hello onaga.vn.com!";cout Output:

*

Một số compiler văn minh thường chú ý về câu hỏi áp dụng hàm strlwr()strupr(), và đề xuất thiết kế viên thêm chiếc lệnh #define _CRT_NONSTDC_NO_DEPRECATE vào đầu lịch trình nhằm hoàn toàn có thể thực hiện hàm strlwr()strupr().

Trong C++ 11, chúng ta cũng có thể sử dụng 2 hàm _strlwr_s() với _strupr_s() nhằm thay thế.

Sao chnghiền mảng cam kết tự (C-style strings)

Để coppy 1 chuỗi cam kết tự sang một chuỗi ký kết từ không giống, bạn cũng có thể áp dụng hàm strcpy().

#define _CRT_SECURE_NO_WARNINGS#include #include using namespace std;int main(){char szSource<> = "Kteam";char szDest<20>;// coppy chuỗi szSource lịch sự chuỗi szDeststrcpy(szDest, szSource); cout Output:

*

Crúc ý: Lúc sử dụng hàm này, chuỗi đích phải đầy đủ lớn nhằm chứa được chuỗi nguồn. Nếu không, vụ việc tràn mảng đang xảy ra.

Xem thêm: Download Game Chiến Cơ Siêu Hạng, Game Chiến Cơ Siêu Hạng

Một số compiler tiến bộ thường cảnh báo về câu hỏi thực hiện hàm strcpy() là không an toàn, và yêu cầu lập trình sẵn viên thêm loại lệnh #define _CRT_SECURE_NO_WARNINGS vào đầu chương trình để rất có thể áp dụng hàm strcpy().

Trong C++ 11, hàm strcpy_s() được cầm cố thế mang lại hàm strcpy(), hàm này có thêm 1 tmê mẩn số được cho phép xác minh độ lâu năm của chuỗi đích. Nếu chuỗi đích không đủ to để đựng chuỗi mối cung cấp, compiler đang ném nhẹm ra 1 assert trong debug mode, với xong công tác.

#include #include using namespace std;int main(){char szSource<> = "onaga.vn.com";char szDest<5>;// xào luộc chuỗi szSource sang chuỗi szDeststrcpy_s(szDest, 5, szSource); // 1 assert được ném ra trong debug modecout

Nối 2 mảng cam kết từ (C-style strings)

Để nối 1 chuỗi vào sau chuỗi không giống, bạn cũng có thể sử dụng hàm strcat().

#define _CRT_SECURE_NO_WARNINGS #include #include using namespace std;int main(){char szSource<> = "onaga.vn.com!";char szDest<100> = "Hello";// nối chuỗistrcat(szDest, " "); // "Hello "strcat(szDest, szSource); // "Hello onaga.vn.com!"cout Output:

*

Crúc ý: khi sử dụng hàm strcat(), chuỗi đích nên đủ bự để chứa đạt thêm chuỗi mới được nối nào. Nếu ko, vấn đề tràn mảng vẫn xảy ra.

Trong C++ 11, hàm strcat_s() được vắt thế cho hàm strcat(), hàm này có thêm 1 tsi mê số có thể chấp nhận được khẳng định độ dài của chuỗi đích. Nếu chuỗi đích không được to để cất thêm chuỗi mối cung cấp, compiler đang nỉm ra 1 assert vào debug mode, và kết thúc công tác.

#include #include using namespace std;int main(){char szSource<> = "onaga.vn.com!";char szDest<10> = "Hello";// nối chuỗistrcat_s(szDest, 10, " "); strcat_s(szDest, 10, szSource); // 1 assert được ném ra vào debug modecout

So sánh 2 mảng cam kết từ (C-style strings)

Để so sánh nhị chuỗi cam kết từ s1 s2 (biệt lập hoa thường), bạn cũng có thể sử dụng hàm strcmp().

Giá trị trả về nhỏ tuổi hơn 0 nếu: chuỗi s1 Giá trị trả về bằng 0 nếu: chuỗi s1 == chuỗi s2Giá trị trả về to hơn 0 nếu: chuỗi s1 > chuỗi s2

Ví dụ:

#include #include using namespace std;int main(){char szString1<> = "onaga.vn.com!";char szString2<> = "onaga.vn.com!";cout 0)cout s2" Output:

*

Tìm kiếm chuỗi trong chuỗi

Để tra cứu vị trí xuất hiện thứ nhất của một chuỗi (s2) trong một chuỗi không giống (s1), chúng ta có thể áp dụng hàm strstr().

Nếu search thấy: trả về bé trỏ cho địa chỉ lộ diện đầu tiên của chuỗi s2 trong chuỗi s1.Nếu không tìm kiếm thấy: trả về NULL.

Khái niệm nhỏ trỏ sẽ được nói tới vào bài CON TRỎ CƠ BẢN TRONGC++(Pointers).

Ví dụ:

#include #include using namespace std;int main(){char szString1<> = "Hello onaga.vn.com!";char szString2<> = "kteam";cout Output:

*

Kết luận

Qua bài học này, chúng ta đang biết được Các thao tác làm việc trên Mảng ký kết tự (C-style strings) trong C++. Còn rất nhiều thao tác khác trên mảng ký kết tự, vào phạm vi bài học kinh nghiệm quan trọng đề cập không còn được, chúng ta hãy trường đoản cú mình mày mò với phản hồi dưới để share mang lại phần đa bạn nhé.

Trong bài xích tiếp sau, mình đã ra mắt mang lại các bạn TỪ KHÓA AUTO TRONG C++ (The auto keyword).

Xem thêm: Sinh Năm 1956 Mệnh Gì? Tuổi Bính Thân Hợp Tuổi Nào, Màu Gì, Hướng Nào?

Cảm ơn các bạn vẫn quan sát và theo dõi bài viết. Hãy còn lại bình luận hoặc góp ý của bản thân nhằm trở nên tân tiến bài viết xuất sắc hơn. Đừng quên “Luyện tập – Thử thách – Không hổ ngươi khó”.