Chuyển đến nội dung chính

Memset Trong C++

Trong bài viết này chúng ta sẽ tìm hiểu về hàm memset() trong C++. Đây là một hàm được sử dụng sao chép ký tự trong một chuỗi.

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ự đầu tiên của chuỗi được trỏ tới bởi tham số str.

Memset Trong C++ Là Gì
Memset Trong C++ Là Gì

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 nhất định vào một đối tượng.

Cú pháp:

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.

Cú Pháp Memset Trong C++
Cú Pháp Memset Trong C++

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 nhất định vào một đối tượng.

Trong phần này mình sẽ thực hiện 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 các 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 <iostream>
#include <cstring>
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ả:

Ví Dụ Về Hàm Memset Trong C++
Ví Dụ Về Hàm Memset Trong C++

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 dữ 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 <stdio.h>
#include <string.h>


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 kết quả:

Memcpy() Trong C++
Memcpy() Trong C++

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 <stdio.h>
#include <string.h>

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 kết quả:

Memcmp() Trong C++
Memcmp() Trong C++

The post Memset Trong C++ first appeared on Techacademy.



Nhận xét

Bài đăng phổ biến từ blog này

Học Lập Trình Ở Bình Dương

Bình Dương là một trong những tỉnh thành phát triển nhanh nhất ở Việt Nam, với sự tăng trưởng đáng kể trong lĩnh vực công nghệ thông tin và truyền thông. Trung tâm công nghệ cao Bình Dương đã thu hút nhiều doanh nghiệp công nghệ hàng đầu đặt trụ sở tại đây, tạo ra nhiều cơ hội việc làm và sự phát triển trong lĩnh vực lập trình. Cùng techacademy đi tìm hiểu ngay những địa chỉ học lập trình ở Bình Dương ngay bài viết bên dưới đây nhé. I. Top 10 Địa Chỉ Uy Tín Học Lập Trình Ở Bình Dương Trong thời buổi công nghệ thông tin phát triển như vũ bão hiện nay, việc các lập trình viên phải liên tục bổ sung kiến thức và kĩ năng là điều bắt buộc. Kiến thức học được từ các trường Đại học chưa đủ để đáp ứng những yêu cầu về lập trình viên của các doanh nghiệp, đòi hỏi các bạn trẻ phải chủ động học hỏi thêm bên ngoài. Techacademy sẽ gợi ý giúp bạn những trung tâm đào tạo lập trình uy tín, chất lượng tại Bình Dương để bạn tham khảo lựa chọn nhé! 1. Trung tâm Techacademy Nếu bạn muốn tìm một trung t...

Mảng Trong PHP

Mảng là một cấu trúc dữ liệu lưu trữ một hoặc nhiều loại giá trị tương tự trong một giá trị duy nhất. Ví dụ: nếu bạn muốn lưu trữ 100 số thì thay vì xác định 100 biến dễ dàng để xác định một mảng có độ dài 100. Tìm hiểu về Mảng (Array) trong PHP được sử dụng để tạo một mảng. Mảng là một trong những nội dung cơ bản rất quan trọng trong khóa học lập trình PHP , vì thế học viên nên nắm bắt thật chắc về mảng. mảng php Trong PHP, có ba loại mảng: Mảng được lập chỉ mục – Mảng có chỉ mục số Mảng kết hợp – Mảng với các phím được đặt tên Mảng đa chiều – Mảng chứa một hoặc nhiều mảng 1. Mảng được lập chỉ mục – Mảng có chỉ mục số Các mảng này có thể lưu trữ số, chuỗi và bất kỳ đối tượng nào nhưng chỉ mục của chúng sẽ được biểu diễn bằng số. Theo chỉ mục mảng mặc định bắt đầu từ số không. Thí dụ Sau đây là ví dụ cho thấy cách tạo và truy cập mảng số. Ở đây chúng ta đã sử dụng hàm array () để tạo mảng. Hàm này được giải thích trong tham chiếu hàm.   /* First method to create arr...

Lập Trình Hướng Đối Tượng Trong C++

C ++ là ngôn ngữ lập trình hướng đội tượng khá phổ biến và thường được giới thiệu cho sinh viên khi bắt đầu học làm quen với phương pháp lập trình hướng đối tượng. Tại sao lập trình hướng đối tượng trong C++ lại được người nhiều lựa chọn ngay từ khi bắt đầu, chúng ta hãy cũng tìm hiểu nhé! I. Hướng đối tượng là gì và tại sao nó quan trọng? Hướng đối tượng (Object-Oriented Programming – OOP) là một mô hình lập trình quan trọng đã thay đổi cách chúng ta tiếp cận việc phát triển phần mềm. Được xây dựng dựa trên khái niệm về đối tượng, hướng đối tượng mang lại sự cấu trúc hóa, linh hoạt và dễ quản lý cho mã nguồn. Dưới đây là giải thích về hướng đối tượng và tầm quan trọng của nó trong lập trình. Hướng Đối Tượng là gì? Hướng đối tượng là một phương pháp lập trình tập trung vào việc tổ chức mã nguồn thành các “đối tượng”, mỗi đối tượng đại diện cho một thực thể trong thế giới thực hoặc trong bài toán cụ thể. Mỗi đối tượng bao gồm dữ liệu (thuộc tính) và các phương thức (hành vi) để thao...