Tóm tắt nội dung bài viết
I. Memset Trong C + + Là Gì
Hàm void * memset ( void * str, int c, size_t n ) sao chép ký tự c ( một unsigned char ) tới n ký tự tiên phong của chuỗi được trỏ tới bởi tham số str .
II. Cú Pháp Memset Trong C + +
Hàm memset ( ) trong C + + được sử dụng để sao chép một ký tự đơn lẻ trong một khoảng chừng nhất định vào một đối tượng người tiêu dùng .
Cú pháp:
Bạn đang đọc: Memset Trong C++ – Techacademy
void* memset( void* dest, int ch, size_t count );
Trong đó:
- dest: Con trỏ tới đối tượng để sao chép ký tự.
- ch: Ký tự cần sao chép.
- count: Số lần sao chép.
Hàm trả về một chuỗi đã được sao chép và lưu vào con trỏ dest .
III. Ví Dụ Về Hàm Memset Trong C + +
Hàm memset ( ) trong C + + được sử dụng để sao chép một ký tự đơn lẻ trong một khoảng chừng nhất định vào một đối tượng người dùng .
Trong phần này mình sẽ triển khai một ví dụ để mình họa cho hàm memset ( ) trong C + + .
Cụ thể mình sẽ tạo một biến dest với độ dài 50 ký tự để lưu những ký tự đã được sao chép. Sau đó sử dụng hàm memset ( ) để sao chép ký tự ‘ a ’ với số lần là 5 .
#include#include using namespace std; int main() { //khai báo biến dest có độ dài 50 ký tự, được dùng để lưu các ký tự lặp lại char dest[50]; //biến ch là biến được sử dụng để lặp lại char ch = 'a'; //gọi hàm memset để lặp lại ký tự a 5 lần rồi gán vào biến dest memset(dest, ch, 5); cout << "Sau khi gọi hàm memset để lặp lại" << endl; cout << "\tBiến dest = " << dest; cout<<"\n-------------------------------\n"; cout<<"Chương trình này được đăng tại Techcademy.edu.vn"; }
Kết quả :
IV. Memcpy ( ) Trong C + +
Hàm memcpy ( ) trong C
Hàm void * memcpy ( void * str1, const void * str2, size_t n ) sao chép n ký tự từ str2 tới str1 .
Khai báo hàm memcpy ( ) trong C
Dưới đây là phần khai báo cho memcpy ( ) trong C :
void *memcpy(void *str1, const void *str2, size_t n)
Tham số
str1 — Đây là con trỏ tới mảng đích, nơi mà nội dung để được sao chép, ép kiểu thành một con trỏ của kiểu void * .
str2 — Đây là con trỏ tới nguồn tài liệu để sao chép, ép kiểu thành một con trỏ của kiểu void * .
n — Đây là số byte để được sao chép .
Trả về giá trị
Hàm này trả về một con trỏ tới chuỗi đích, đó là str1 .
Ví dụ
Chương trình C sau minh họa cách sử dụng của memcpy ( ) trong C :
#include#include struct { char name[40]; int age; } person, person_copy; int main () { char myname[] = "Nguyen Hoang Nam"; /* su dung ham memcpy de sao chep chuoi: */ memcpy ( person.name, myname, strlen(myname)+1 ); person.age = 46; /* su dung ham memcpy de sao chep struct: */ memcpy ( &person_copy, &person, sizeof(person) ); printf ("person_copy = %s, %d \n", person_copy.name, person_copy.age ); return 0; }
Biên dịch và chạy chương trình C trên sẽ cho tác dụng :
V. Memcmp ( ) Trong C + +
Hàm int memcmp ( const void * str1, const void * str2, size_t n ) ) so sánh n byte đầu của hai chuỗi str1 và str2 .
Khai báo hàm memcmp() trong C
Dưới đây là phần khai báo cho memcmp ( ) trong C :
int memcmp(const void *str1, const void *str2, size_t n)
Tham số
str1 — Đây là con trỏ tới một khối bộ nhớ .
str2 — Đây là con trỏ tới một khối bộ nhớ .
n — Đây là số byte để được so sánh .
Trả về giá trị
Nếu trả về giá trị < 0 thì hàm này chỉ rằng str1 là ngắn hơn str2 . Nếu trả về giá trị > 0 thì hàm này chỉ rằng str2 là ngắn hơn str1 .
Nếu trả về giá trị = 0 thì hàm này chỉ rằng str1 là bằng str2.
Ví dụ
Chương trình C sau minh họa cách sử dụng của memcmp ( ) trong C :
#include#include int main () { char str1[15]; char str2[15]; int ret; memcpy(str1, "abcdef", 6); memcpy(str2, "ABCDEF", 6); ret = memcmp(str1, str2, 5); if(ret > 0) { printf("Chuoi str2 la ngan hon chuoi str1"); } else if(ret < 0) { printf("Chuoi str1 la ngan hon chuoi str2"); } else { printf("Chuoi str1 la bang chuoi str2"); } return(0); }
Biên dịch và chạy chương trình C trên sẽ cho tác dụng :
Source: http://wp.ftn61.com
Category: Tin Tức
Để lại một bình luận