Computer >> Máy Tính >  >> Lập trình >> C ++

memset trong C ++

Trong phần này chúng ta sẽ xem mục đích của hàm memset () trong C ++ là gì. Hàm này chuyển đổi giá trị của một ký tự thành ký tự không dấu và sao chép nó vào từng ký tự trong n ký tự đầu tiên của đối tượng được trỏ bởi str [] đã cho. Nếu n lớn hơn kích thước chuỗi, nó sẽ không được xác định.

Cú pháp của hàm memset ()

void* memset( void* str, int c, size_t n);

Trong ví dụ này sẽ sử dụng một chuỗi, sau đó chuyển đổi từng ký tự thành một số ký tự khác có độ dài tối đa là n.

Ví dụ

#include<bits/stdc++.h>
using namespace std;
int main() {
   char str[] = "Hello World";
   memset(str, 'o', 6); //take n = 6
   cout << str;
}

Đầu ra

ooooooWorld

Memset () có thể được sử dụng để đặt tất cả các giá trị thành 0 hoặc -1. Nhưng chúng ta không thể sử dụng một số giá trị khác vì memset () hoạt động từng byte.

Ví dụ

#include<bits/stdc++.h>
using namespace std;
int main() {
   int array[10];
   memset(array, 0, sizeof(array));
   for(int i = 0; i<10; i++){ cout << array[i] << " "; }
      cout << endl;
      memset(array, -1, sizeof(array));
   for(int i = 0; i<10; i++){ cout << array[i] << " "; }
      cout << endl;
      memset(array, 3, sizeof(array));
   for(int i = 0; i<10; i++){ cout << array[i] << " "; }
      cout << endl;
}

Đầu ra

0 0 0 0 0 0 0 0 0 0
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
50529027 50529027 50529027 50529027 50529027 50529027 50529027
50529027 50529027 50529027