Sic Parvis Magna

16 Kasım 2024 Cumartesi

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

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

strtod

Verilen array içindeki iki adet double sayıyının birini verilen char* değerine yazar değerini ise çıktı olarak dönüş sağlar. Başarı durumunda string den double sayıya dönüşüm sağlar. Başarısız durumunda dönüşü 0 olarak döner.

Syntax
double strtod(const char* str, const char** endptr);

Params

  • str: Dönüştürülcek değer
  • endptr: Tampon değer
example.cpp
#include <stdlib.h>

int main(int argc, char** argv)
{
	char sz[] = "365.24 29.53";
	char* endptr;
	double d1, d2;
	
	d1 = strtod(sz, &endptr);
	d2 = strtod(endptr, NULL);
	
	printf("%f %f", d1, d2);
	
	return 0;
}

strtof

Verilen array içindeki iki adet float sayıyının birini verilen char* değerine yazar değerini ise çıktı olarak dönüş sağlar. Başarı durumunda string den float sayıya dönüşüm sağlar. Başarısız durumunda dönüşü 0 olarak döner.

Syntax
float strtof(const char* str, const char** endptr);

Params

  • str: Dönüştürülcek değer
  • endptr: Tampon değer
example.cpp
#include <stdlib.h>

int main(int argc, char** argv)
{
	char sz[] = "365.2 29.5";
	char* endptr;
	double f1, f2;
	
	f1 = strtof(sz, &endptr);
	f2 = strtof(endptr, NULL);
	
	printf("%f %f", f1, f2);
	
	return 0;
}

strtol

Sayıların hangi tabanda işleneceği belirtilir. Başarı durumunda string den long int tipine dönüşüm sağlar. Başarısız durumunda dönüşü 0 olarak döner.

Syntax
long int strtol(const char* src, char** dst, int base);

Params

  • src: Parse edilicek kaynak
  • dst: Hedef bellek
  • base: Çevrilecek taban
example.cpp
#include <stdlib.h>

int main(int argc, char** argv)
{
	char sz[] = "1856892505 17b00a12b -01100011010110000010001101100 0x6fffff";
	char* endptr;
	long int l1, l2, l3, l4;
	
	l1 = strtol(sz, &endptr, 10);
	l2 = strtol(endptr, &endptr, 16);
	l3 = strtol(endptr, &endptr, 2);
	l4 = strtol(endptr, &endptr, 0);
	
	printf("%ld %ld %ld %ld", l1, l2, l3, l4);
	
	return 0;
}

strtold

Sayıların hangi tabanda işleneceği belirtilir. Başarı durumunda string den long double tipine dönüşüm sağlar. Başarısız durumunda dönüşü 0 olarak döner.

Syntax
long double strtold(const char* src, char** dst);

Params

  • src: Parse edilicek kaynak
  • dst: Hedef bellek
example.cpp
#include <stdlib.h>

int main(int argc, char** argv)
{
	char sz[] = "365.24 29.53";
	char* endptr;
	long double l1, l2;
	
	l1 = strtold(sz, &endptr);
	l2 = strtold(endptr, NULL);
	
	printf("%Lf %Lf", l1, l2);
	
	return 0;
}

strtoll

Sayıların hangi tabanda işleneceği belirtilir. Başarı durumunda string den long long int tipine dönüşüm sağlar. Başarısız durumunda dönüşü 0 olarak döner.

Syntax
long long int strtoll(const char* src, char** dst, int base);

Params

  • src: Parse edilicek kaynak
  • dst: Hedef bellek
  • base: Çevrilecek taban
example.cpp
#include <stdlib.h>

int main(int argc, char** argv)
{
	char sz[] = "1856892505 17b00a12b -01100011010110000010001101100 0x6fffff";
	char* endptr;
	long long int l1, l2, l3, l4;
	
	l1 = strtoll(sz, &endptr, 10);
	l2 = strtoll(endptr, &endptr, 16);
	l3 = strtoll(endptr, &endptr, 2);
	l4 = strtoll(endptr, &endptr, 0);
	
	printf("%llu %llu %llu %llu", l1, l2, l3, l4);
	
	return 0;
}

strtoull

Sayıların hangi tabanda işleneceği belirtilir. Başarı durumunda string den unsigned long long int tipine dönüşüm sağlar. Başarısız durumunda dönüşü 0 olarak döner.

Syntax
unsigned long long int strtoull(const char* src, char** dst, int base);

Params

  • src: Parse edilicek kaynak
  • dst: Hedef bellek
  • base: Çevrilecek taban
example.cpp
#include <stdlib.h>

int main(int argc, char** argv)
{
	char sz[] = "1856892505 17b00a12b -01100011010110000010001101100 0x6fffff";
	char* endptr;
	unsigned long long int l1, l2, l3, l4;
	
	l1 = strtoull(sz, &endptr, 10);
	l2 = strtoull(endptr, &endptr, 16);
	l3 = strtoull(endptr, &endptr, 2);
	l4 = strtoull(endptr, &endptr, 0);
	
	printf("%llu %llu %llu %llu", l1, l2, l3, l4);
	
	return 0;
}

strtoul

Sayıların hangi tabanda işleneceği belirtilir. Başarı durumunda string den unsigned long int tipine dönüşüm sağlar. Başarısız durumunda dönüşü 0 olarak döner.

Syntax
unsigned long int strtoul(const char* src, char** dst, int base);

Params

  • src: Parse edilicek kaynak
  • dst: Hedef bellek
  • base: Çevrilecek taban
example.cpp
#include <stdlib.h>

int main(int argc, char** argv)
{
	char sz[] = "1856892505 17b00a12b -01100011010110000010001101100 0x6fffff";
	char* endptr;
	unsigned long int l1, l2, l3, l4;
	
	l1 = strtoul(sz, &endptr, 10);
	l2 = strtoul(endptr, &endptr, 16);
	l3 = strtoul(endptr, &endptr, 2);
	l4 = strtoul(endptr, &endptr, 0);
	
	printf("%llu %llu %llu %llu", l1, l2, l3, l4);
	
	return 0;
}

0 comments:

Yorum Gönder