Memset en C++ – Part 1

Memset() es una función de C++. Copia un solo carácter por un número específico de veces a un objeto. Se define en el archivo de encabezado <cstring> .

Sintaxis:

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

Memset() convierte el valor ch en char sin firmar y lo copia en cada uno de los primeros n caracteres del objeto señalado por str[]. Si el objeto no se puede copiar de forma trivial (por ejemplo, escalar, array o una estructura compatible con C), el comportamiento no está definido. Si n es mayor que el tamaño del objeto señalado por str, el comportamiento no está definido. 

Parámetros:

  • str[] : Puntero al objeto para copiar el carácter.
  • ch : El caracter a copiar.
  • n : Número de bytes a copiar.

Valor de retorno: la función memset() devuelve str, el puntero a la string de destino. 

CPP

// CPP program to demonstrate memset
#include <cstring>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    char str[] = "geeksforgeeks";
    memset(str, 't', sizeof(str));
    cout << str;
    return 0;
}
Producción

tttttttttttttt

Nota: Podemos usar memset() para establecer todos los valores como 0 o -1 también para tipos de datos integrales. No funcionará si lo usamos para establecer como otros valores. La razón es simple, memset funciona byte por byte.  

CPP-STL-Self-Paced-Course

CPP

// CPP Program to demonstrate that we can use memset() to
// set all values as 0 or -1 for integral data types also
#include <bits/stdc++.h>
using namespace std;
  
// Driver Code
int main()
{
    int a[5];
  
    // all elements of A are zero
    memset(a, 0, sizeof(a));
    for (int i = 0; i < 5; i++)
        cout << a[i] << " ";
    cout << endl;
  
    // all elements of A are -1
    memset(a, -1, sizeof(a));
    for (int i = 0; i < 5; i++)
        cout << a[i] << " ";
    cout << endl;
  
    // Would not work
    memset(a, 5, sizeof(a)); // WRONG
    for (int i = 0; i < 5; i++)
        cout << a[i] << " ";
}
Producción

0 0 0 0 0 
-1 -1 -1 -1 -1 
84215045 84215045 84215045 84215045 84215045 

Ver también:

Este artículo es una contribución de Pranav . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.  

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *