ft_bzero

A função bzero() apaga os dados nos ‘n’ bytes da memória começando no local apontado por ‘s’, escrevendo zeros (bytes contendo ‘\0’) nessa área.

Declaração

void bzero(void *s, size_t n);

Parâmetros

  • s – Local que terá os dados apagados.
  • n – Quantos bytes a serem zerados.

Retorno

Nenhum

Exemplo

#include <strings.h>
#include <stdio.h>

int main() {
  char str[] = "Anime";
  
  printf("A string era: %s\n", str);
  bzero(str, 3);
  printf("A string ficou: %s\n", str);
  return 0;
}
Antes do bzero()
Após bzero()

Codificando a função

Basicamente a função deve atribuir 0 a área da string até n, então é só fazer um while.

void	ft_bzero(void *s, size_t n)
{
	char *str2;

	str2 = s; //endereço de str2 é o mesmo que de s
	while (n--) //enquanto n não chegar a 0
	{
		*str2 = 0;
		str2++;
	}
}

Outra opção é usar o ft_memset():

void	ft_bzero(void *s, size_t n)
{
	ft_memset(s, 0, n);
}

Referências

http://man7.org/linux/man-pages/man3/bzero.3.html

https://stackoverflow.com/questions/29182966/do-you-have-a-simple-bzero-example

Deixe um comentário