Các hàm xử lý chuỗi trong C++ là một trong những vấn đề rất được quan tâm trong lập trình. Nắm được các hàm này giúp người dùng dễ dàng thao tác hơn khi làm việc. Và để hiểu rõ hơn về chuỗi cũng như hiểu được các hàm xử lý chuỗi trong C++ bạn hãy theo dõi bài viết dưới đây.
Chuỗi trong C++ là gì?
Trước khi tìm hiểu về các hàm xử lý chuỗi trong C++ thì chúng ta phải hiểu về khái niệm chuỗi trong C++. Vậy chuỗi là gì? Chuỗi được xem là một khái niệm thường gặp trong ngôn ngữ lập trình. Chuỗi nó được diễn tả bằng một dãy các ký tự được đặt trong cặp dấu ngoặc kép, chẳng hạn như:
- “Nguyen Nhat Anh”
- “Hello”…
Về bản chất của ngôn ngữ lập trình thì chuỗi được quy định bởi một mảng các ký tự liên tiếp nhau và kết thúc ở ký tự \o.
Chuỗi trong C++ là gì?
Khai báo chuỗi
Để khai báo chuỗi chúng ta có thể dùng nhiều cách chẳng hạn như: cách thông thường, cách khai báo từng phần tử và có thể sử dụng cả thư viện std.
C++ cung cấp cho người dùng một thư viện để xử lý chuỗi được gọi là std::string. Lập trình C++ cung cấp hai kiểu biểu diễn chuỗi như sau:
- Chuỗi theo phong cách của ngôn ngữ C (C-style)
- Lớp chuỗi String được giới thiệu trong C/C++ chuẩn.
Các hàm xử lý chuỗi trong C++
Dưới đây tôi sẽ đưa ra những công dụng cũng như cấu trúc của các hàm xử lý chuỗi trong C++:
Hàm ctrcpy:
Công dụng của hàm này là sao chép nguồn chuỗi vào đích chuỗi.
Cấu trúc của nó như sau:
Char*strcpy(char* dich, char *nguon)
Điều này có nghĩa là khi chúng ta nhập vào một dãy các ký tự ở nguồn chuỗi thì lúc này nó sẽ sao chép tất cả các ký tự vừa mới nhập vào một đích chuỗi.
Hàm strncpy:
Trong trường hợp muốn sao chép n ký tự từ nguồn chuỗi vào mục tiêu chuỗi chúng ta sẽ sử dụng hàm này.
Công dụng của nó là sao chép lần đầu tiên ký tự của nguồn chuỗi vào đích chuỗi.
Char * strncpy(char* dich, char *nguon)
Hàm strlen:
Một trong các hàm xử lý chuỗi trong C++ là hàm Strlen. Công dung của hàm này đó là cho biết độ dài của chuỗi s.
Cấu trúc hàm strlen như sau:
int strlen(char *s)
Hàm strcat:
Công dụng của hàm strcat đó là: ghép nguồn chuỗi vào sau đích chuỗi.
Cấu trúc của nó như sau:
Char* strcat(char* dich, char *nguon)
Hàm strncat:
Công dụng của nó là ghép chuỗi ký tự đầu tiên của n vào sau đích chuỗi
Cấu trúc:
char *strncat(char* dich, char *nguon)
Hàm strcmp:
Công dụng của hàm này là so sánh 2 string s1 và s2.
int strcmp(char *s1, char *s2)
Sau đó hàm sẽ trả về một trong những giá trị sau:
- Audio value
If string s1 small hơn string s2
- Giá trị 0 nếu như cả hai chuỗi đều bằng nhau
- Positive value if string s1 to hơn string s2.
Hàm strlwr:
Công dụng của hàm này đó là chuyển tất cả các ký tự về chữ thường.
Cấu trúc hàm là:
char *strlwr(char *s);
Hàm strupr:
Công dụng của hàm strupr là chuyển tất cả các ký tự thường về chữ hoa.
Cấu trúc là: char *strupr(char *s)
Hàm strrev:
Công dụng của hàm này đó là ký tự chuỗi ngược
Cấu trúc của hàm là: char *strrev(char *s);
Hàm strchr:
Công dụng của hàm này đó là trả về vị trí xuất hiện đầu tiên của ký tự trong chữ và sau đó sẽ trả về NULL giá trị trong trường hợp không thể tìm thấy được.
Cấu trúc của nó sẽ là:
char *strchr(char *s, int ch)
Hàm strrchr:
Công dụng của hàm đó là trả về cuối cùng xuất hiện định vị của bộ ký tự trong chuỗi s. If not found will return about NULL value.
Cấu trúc như sau: char *strrchr(char *s, char ch)
- Hàm strstr:
Công dụng của hàm đây là: trả về đầu tiên xuất hiện địa chỉ của chuỗi s1 trong chuỗi s và sẽ trả về NULL giá trị khi không tìm thấy.
Cấu trúc hàm là: char *strstr(char *s, char *s1)
Hàm memset:
Cấu trúc của hàm này như sau:
void *memset (void *ptr, int value, size_t num);
Công dụng của hàm này đó là: đặt bộ nhớ num byte từ đầu trỏ vị trí đến bằng giá trị giá trị.
Hàm memcpy:
Công dụng của hàm này đó là: nó sẽ sao chép byte num từ vị trí mà đầu trỏ nguồn tới vị trí mà đầu trỏ đích tới.
Cấu trúc: void *memcpy (void *destination, const void *source, size_t num);
Hàm memcmp:
Công dụng của hàm này đó là nos sẽ so sánh giá trị của các vùng nhớ mà ptr1 và ptr2 trỏ tới từng byte và sẽ dừng lại khi so sánh đủ số byte. Trả về -1 nếu ban đầu byte không trùng nhau của 2 vùng so sánh của ptr1 nhỏ hơn ptr2, trả về 0 trong trường hợp 2 vùng nhớ bằng nhau, trả về 1 nếu như đầu byte không trùng nhau của 2 vùng so sánh của ptr1 lớn hơn ptr2.
Cấu trúc của hàm này là:
int memcmp(const void *ptr1, const void * ptr2, size_t num);
Hàm stricmp:
Công dụng của hàm: so sánh 2 chữ thường không phân biệt chuỗi, hàm trả về strcmp tương tự.
Cấu trúc:
int stricmp (const char * string1, const char * string2);
Lời kết
Trên đây tôi đã giới thiệu cho bạn các hàm xử lý chuỗi trong C++. Qua đây chắc hẳn người dùng cũng sẽ hiểu hơn về chuỗi trong ngôn ngữ lập trình. Hãy thường xuyên theo dõi những bài viết mới nhất từ chúng tôi để có thể hiểu biết sâu rộng hơn nữa về lập trình, phần mềm.