Hàm Strcpy, Strcat, Strlen Và Strcmp để Thao Tác Với Chuỗi Trong C
Có thể bạn quan tâm
Khi làm việc với kiểu chuỗi trong C, sẽ có rất nhiều vấn đề sảy ra. Vì vậy trong C đã cung cấp cho ta khá nhiều hàm để xử lý và thao tác với chuỗi, các hàm chủ yếu thuộc thư viện <string.h>
Dưới đây tôi liệt kê ra 4 hàm thường dùng khi thao tác với chuỗi ký tự đó là: strcpy, strcat, strlen và strcmp:
| Hàm | Chức năng |
| strcpy (s1, s2); | Sao chép chuỗi s2 thành chuỗi s1. |
| strcat (s1, s2); | Ghép 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 giống nhau; nhỏ hơn 0 nếu s1 |
Ví dụ tôi có 2 chuỗi ở 2 biến là: hoten1 và hoten2 tôi muốn sao chép chuỗi ở biến hoten2 vào hoten1 tôi sẽ sử dụng hàm strpy(hoten1, hoten2).
#include <stdio.h> #include<string.h> int main(){ //Hoten1 ban dau chua co gi char hoten1[13]; //Hoten2 có gia tri la: Nguyen Van A char hoten2[13] = "Nguyen Van A"; //Sao chep hoten2 vao hoten1 strcpy(hoten1, hoten2); printf("Ho ten 1 la: %s",hoten1); return 0; }| Ho ten 1 la: Nguyen Van A |
Ví dụ dưới đây tôi cần ghép chuỗi ở biến ten vào biến ho tôi sẽ sử dụng hàm strcat(ho,ten).
#include <stdio.h> #include<string.h> int main(){ //Hoban dau co gia tri la: Nguyen char ho[8] = "Nguyen "; //ten có gia tri la: Van A char ten[6] = "Van A"; //Hien thi ho ten sau khi noi chuoi o bien ten vao chuoio bien ho printf("Ho ten la: %s",strcat(ho,ten)); return 0; }| Ho ten la: Nguyen Van A |
Tôi muốn đếm xem một chuỗi có độ dài là bao nhiêu ký tự, tôi sẽ sử dụng hàm strlen(s1).
#include <stdio.h> #include<string.h> int main(){ char hoTen[13] = "Nguyen Van A"; //Dem va hien thi xem chuoi o bien hoTen co bao nhieu ky tu printf("Chuoi tren co %d ky tu",strlen(hoTen)); return 0; }| Chuoi tren co 12 ky tu |
Lưu ý rằng việc đếm ký tự sẽ bỏ qua ký tự ‘’\0’’ ở cuối chuỗi nên chuỗi trên chỉ còn 12 ký tự, tuy nhiên khi khai báo giá trị cho chuỗi thì ta phải khai báo cả cho ký tự “\0” ở cuối chuỗi nên sẽ là 13 ký tự.
5.Strcmp – trả về 0 nếu s1 và s2 giống nhauVí dụ tôi cần so sánh 2 chuỗi xem chúng có giống nhau hay không, để thực hiện việc này tôi sử dụng hàm strcmp (s1, s2); trong đó s1 và s2 là 2 chuỗi cần được so sánh, nếu bằng nhau sẽ cho ra kết quả bằng số 0, nếu không bằng nhau sẽ đưa ra kết quả nhỏ hơn 0.
#include <stdio.h> #include<string.h> int main(){ char chuoi1[13] = "Nguyen Van A"; char chuoi2[13] = "Nguyen Van A"; char chuoi3[13] = "Nguyen Van B"; //Hien thi ket qua so sanh chuoi1 voi chuoi2 printf("Ket qua so sanh chuoi1 voi chuoi2: %d \n",strcmp(chuoi1,chuoi2)); //Hien thi ket qua so sanh chuoi1 voi chuoi2 printf("Ket qua so sanh chuoi1 voi chuoi3: %d",strcmp(chuoi1,chuoi3)); return 0; }| Ket qua so sanh chuoi1 voi chuoi2: 0 Ket qua so sanh chuoi1 voi chuoi3: -1 |
Ta thấy rằng chuoi1 khi so sánh với chuoi2 có kết quả bằng 0, vậy ta có thể hiểu rằng 2 chuỗi bằng nhau khi và chỉ khi chúng có cùng kích cỡ và giá trị.
Ngược lại chuoi1 so sánh với chuoi3 ra kết quả -1 (nhỏ hơn 0), vậy ta có thể hiểu rằng 2 chuỗi không bằng nhau là 2 chuỗi không có cùng giá trị hoặc kích cỡ.
Lưu ý: Để sử dụng được các hàm: strcpy(), strcat(), strlen(), strcmp() ta cần phải include thư viện <string.h> vào chương trình. Nếu không có thư viện chương trình sẽ không hiểu được các hàm trên và không thể thực thi được.
Từ khóa » Ghép Xâu Trong C
-
Bài Tập C - Nối Chuỗi Trong C - VietTuts
-
Nối Chuỗi Trong C (strcat, Strncat, Sprintf)
-
Cách Nối Chuỗi Trong C
-
Lập Trình C++ - Nối Chuỗi Trong C++
-
Xâu Trong C++ - VNOI
-
Nối Chuỗi Trong C
-
Nối Hai Chuỗi Không Sử Dụng Hàm Strcat() - Freetuts
-
Chuỗi (String) Trong C/C++
-
Nối Hai Chuỗi Không Sử Dụng Hàm Strcat()
-
Làm Sao để Nối Chuỗi 2 Vào Chuỗi 1 Kiểu Char Và Kiểu String
-
LTC 71. Lập Trình Nối Hai Chuỗi Trong C, Hàm Strcat Trong Lập Trình C
-
38 [Bài Tập C ( Xâu Ký Tự)]. Ghép Các Từ Để Tạo Thành Cụm Có ...
-
Hỏi Về Cộng Xâu Trong C! [Archive] - Diễn Đàn Tin Học
-
[PDF] Bài 9: Xâu - VNU-UET