Sic Parvis Magna

23 Kasım 2024 Cumartesi

C/CPP - Fonksiyonlar ve Kullanım Yöntemleri #12

Kasım 23, 2024 Posted by unexpected , , No comments

memcmp

Belirlenen her iki değeri biri bir ile belirlenen karakter sayısı kadar karşılaştırır. Başarılı ise 0 değil ise -1 veya 1 değeri döner.

Syntax
int memcmp(const void* buf1, const void* buf2, size_t size);

Params

  • buf1: Sabit data değeri
  • buf2: Sabit data değeri
  • size: Karşılaştırılıcak Uzunluk
example.cpp
#include <stdio.h>
#include <string.h>

int main(int argc, char** argv)
{
	char buffer1[] = "memcmp";
	char buffer2[] = "memcmp";
	
	printf("%d", memcmp(buffer1, buffer2, sizeof(buffer2)));
	
	return 0;
}

memcpy

Belirtilen kaynak (src) değerini hedef (dst) değerine koplayalar. Başarlı ise hedef değerini döner. Başarısız ise NULL değerini döner.

Syntax
void* memcpy(void* dst, const void* src, size_t size);

Params

  • dst: Hedef
  • src: Kaynak
  • size: Kaynak Boyutu
example.cpp
#include <stdio.h>
#include <string.h>

struct Data
{
	char name[22];
	int age;
};

int main(int argc, char** argv)
{
	char src[] = "Hello World!";
	char dest[50];
	memcpy(&dest, &src, sizeof(src));
	printf("%s -- ", dest);
	
	Data d1, d2;
	memcpy(&d1.name, &src, sizeof(src));
	d1.age = 22;
	
	memcpy(&d2, &d1, sizeof(d1));
	printf("Name: %s - Age: %d", d2.name, d2.age);
	
	return 0;
}

memset

Belitilen kaynak veya hedef (dst) içerisinde yeni bir değer ataması yapılamasını sağlar. Burada val değeri ile belirlenen yeni değeri belirttiğimiz index den önceki tüm değerleri değişir. Başarılı ise dst değerini döner.

Syntax
void* memset(void* dst, int val, size_t size);

Params

  • dst: Kaynak veya Hedef Değer
  • val: Karakter veya ASCII Değer
  • size: Index veya değişecek index değeri
example.cpp
#include <stdio.h>
#include <string.h>

int main(int argc, char** argv)
{
	char str[] = "This is a sample memset";
	memset(str, '-', 4);
	printf("%s", str);
	
	return 0;
}

memmove

Belirlenen src değerini dst değeri içerisine belirtilen uzunluk kadar taşır. Başarılı ise dst değerini döner. Başarısız ise NULL döner.

Syntax
void* memmove(void* dst, const void* src, size_t size);

Params

  • dst: Hedef değer
  • src: Taşınacak değer
  • size: Index veya taşınacak index değeri
example.cpp
#include <stdio.h>
#include <string.h>

struct Data
{
	char name[22];
	int age;
};

int main(int argc, char** argv)
{
	char src[] = "memmove";
	
	char dest[50];
	memmove(&dest, &src, sizeof(src));
	printf("%s -- ", dest);
	
	Data d1, d2;
	memmove(&d1.name, &src, sizeof(src));
	d1.age = 22;
	
	memmove(&d2, &d1, sizeof(d1));
	printf("Name: %s - Age: %d", d2.name, d2.age);
	
	return 0;
}

memchr

Belitilen buf içerisinde verilen val değerindeki karakteri bulur. Return olarak bulunan karakterden sonraki kısmını döner.

Syntax
void* memchr(const void* buf, int val, size_t maxCount);

Params

  • buf: Kaynak Değer
  • val: Karakter veya ASCII Değer
  • size: Kaynak Uzunluk
example.cpp
#include <stdio.h>
#include <string.h>

int main(int argc, char** argv)
{
	char* pch;
	char str[] = "memchr";
	
	pch = (char*)memchr(str, 'c', sizeof(str));
	(pch != NULL) ? printf("Found at position: %d", pch - str + 1) : printf("Not Found");
	
	return 0;
}

0 comments:

Yorum Gönder