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

Đề Thi HSG Tin Học Lớp 9 Tỉnh Hải Phòng Năm 2024 – 2025

Rate this post Dưới đây là Đề Thi HSG Tin Học Lớp 9 Tỉnh Hải Phòng Năm 2024 – 2025 Dưới đây là danh sách toàn bộ đề thi học HSG – Chuyên Tin trên toàn quốc do Techacademy tổng hợp và sưu tầm từ các nguồn tham khảo Tổng hợp đề thi chuyên tin   Tổng hợp đề thi HSG tin học lớp 9   Tổng hợp đề thi HSG tin học lớp 12 Ngoài ra, Techacademy đã biên soạn và sưu tầm các đề thi, lời giải, chi tiết, phụ huynh và học viên muốn đăng kí mua tài liệu tham khảo có thể liên hệ Techacademy. +  Đăng Ký Mua Tài Liệu Luyện Thi Chuyên Tin +  Đăng Ký Mua Tài Liệu Luyện Thi THPT +  Đăng Ký Mua Tài Liệu Luyện Thi HSG Tin Học Tham gia group zalo để chia sẻ tài liệu:  https://zalo.me/g/wlonvi793  The post Đề Thi HSG Tin Học Lớp 9 Tỉnh Hải Phòng Năm 2024 – 2025 first appeared on Techacademy .

Phím Tắt Eclipse Thông Dụng Và Tiện Lợi Nhất ! Đọc Ngay Nếu Bạn Vẫn Đang Dùng Chuột

Việc sử dụng các thao tác click chuột nhiều lần trong Eclipse khiến các coder nhàm chán và tốn thời gian, hãy cải tạo nó bằng các phím tắt trong Eclipse. Dưới đây là danh sách một số những phím tắt thông dụng bạn nên biết. phím tắt eclipse (1) Đầu tiên hãy sử dụng phím tắt Ctrl + Shift + L để hiển thị danh sách các phím tắt trong Eclipse. phím tắt eclipse (2) Danh sách tất cả những phím tắt trong Eclipse bạn có thể áp dụng, được chia thành 12 mục khác nhau tùy thuộc vào tác dụng của phím tắt: 1. Quản lý tập tin và dự án Ctrl + N Tạo dự án mới bằng Wizard Ctrl + Alt + N Tạo dự án , tập tin, lớp, vv Alt + F Mở dự án, tệp, v.v. Ctrl + Shift + R Mở Resource (tệp, thư mục hoặc dự án) Alt + Enter Hiển thị và truy cập các thuộc tính tệp Ctrl + S Save tập tin hiện tại Ctrl + Shift + S Save tất cả các tập tin Ctrl + W Đóng tệp hiện tại Ctrl + Shift + W Đóng tất cả các tệp F5 Làm mới nội dung của phần tử đã chọn bằng hệ thống tệp cục bộ 2. Cửa sổ trình chỉnh sửa F1...

Extends Trong Java

Khi chúng ta nói về tính kế thừa, từ khóa thường xuyên nhất được sử dụng là extends trong java và implements trong java. Những từ khóa này có thể định nghĩa 1 kiểu là loại IS-A của loại khác. Sử dụng những từ khóa, chúng ta có thể tạo 1 đối tượng sử dụng thuộc tính của đối tượng khác. Chúng ta sử dụng từ khóa extends của lớp con để có thể kế thừa những thuộc tính của lớp cha trừ những thuộc tính private của lớp cha. Bài viết này mình sẽ giới thiệu cho các bạn hiểu về tính kế thừa trong java. Qua đây hi vọng các bạn có thể tự viết được 1 class kế thừa từ class khác để giải quyết 1 bài toán. I. Extends Trong Java Là Gì Tính kế thừa trong Java là 1 kỹ thuật mà trong đó 1 đối tượng thu được tất cả thuộc tính và hành vi của đối tượng cha. Ý tưởng đằng sau tính kế thừa trong Java là bạn có thể tạo những lớp mới mà được xây dựng dựa trên những lớp đang tồn tại. Khi các bạn kế thừa từ 1 lớp đang tồn tại, bạn có thể tái sử dụng những phương thức và những trường của lớp cha, và các bạn cũng ...