C'deki dize için strlen() ve sizeof() arasındaki fark

strlen() nedir?

strlen() bir dizenin uzunluğunu bulmaya yarayan bir işlevdir. Bir dizede sunulan toplam karakterleri sayar ve boş karakteri ortadan kaldırır. Dizedeki toplam karakter sayısı, alfabeleri, özel karakterleri ve boşluklarla birlikte sayıları içerir.

sizeof() nedir?

sizeof(), işleneninin boyutunu hesaplamak için kullanılan bir fonksiyondur. Belirli değişkenin boyutunu döndürür. Bu işlev, tamsayı ve gibi ilkel türleri içeren herhangi bir veri türüne uygulanabilir. işaretçi türleri, kayan nokta türleri, yapısı veya birleşimi. sizeof() içeren programın çıktısı 32 bit sistemde ve 64 bit sistemde farklı olabilir.

ANAHTAR FARKLILIKLAR

  • Bir dizinin uzunluğunu bulmak için Strlen yöntemi kullanılırken, verilerin gerçek boyutunu bulmak için sizeof() yöntemi kullanılır.
  • Strlen() bir dizedeki karakterlerin sayısını sayarken, sizeof() bir işlenenin boyutunu döndürür.
  • Strlen() değişkenin boş değerini arar ancak sizeof() değişkenin değerini umursamaz.
  • strlen()'ın dönüş değeri long int iken, sizeof()'un dönüş değeri unsigned int'tir.

strlen()'ın sözdizimi

strcount = strlen(my_string); 

Burada my_string bir karakter dizisi değişkenidir.

strlen() örneği

Aşağıdaki C programında char türünde dize değişkeni tanımladık. Strng değişkeni, uzunluğunu bulmak için strlen() fonksiyonunun argümanı olarak iletilen bir değişkendir. dizi.

#include<stdio.h> 
#include<string.h> 
int main() 
{ 
    char strng[] = "January"; 
    printf("Length of given string is: %lu\n", strlen(strng));   
}

Çıktı:

Length of given string is: 7

sizeof()'un sözdizimi

Sözdizimi 1)

sizeof(tip): Tür= başvurulan tür

sizeof(type) örneği:

Aşağıdaki kodda, &type değişkenin (double x) adresini verir. 1 ile artırılır ve x türündeki bir sonraki değişkeni saklayabileceğiniz adresi verir.

x'i char* olarak yazmak ve farkı almak, bellekte saklanan char türündeki değişkenlerin toplam sayısını bilmenizi sağlar. Karakter okumak için getchar() yöntemini kullandık.

#include<stdio.h> 
#define my_sizeof(type) (char *)(&type+1)-(char*)(&type) 
int main() 
{ 
    double x; 
    printf("%ld", my_sizeof(x)); 
    getchar(); 
    return 0; 
}

çıktı:

8

Sözdizimi 2)

sizeof(değişken-adı): Değişken-adı= boyutunu belirlemek istediğiniz değişkenin adı.

Aşağıdaki C programında size char veri tipini yazdırıyoruz. Printf ifadesi, char argümanına sahip sizeof fonksiyonunu içerir.

sizeof(değişken-adı) örneği:

#include<stdio.h>
int main()
{
	printf("sizeof(char) = %d\n\n", sizeof(char));
		
	return 0;
}

Çıktı:

sizeof(char) = 1

Sözdizimi 3)

sizeof(ifade): İfade = Değerlendirmeniz gereken ifade.

sizeof(ifade) örneği:

Aşağıdaki programda öncelikle değişkenin boyutunu hesaplayıp yazdırıyoruz. Daha sonra ifadeyi değerlendirip a değişkenine kaydediyoruz ve sonucu printf ifadesinde görüntülüyoruz.

#include<stdio.h>
int main() {
   char p = 'S';
   double q = 4.65;
   printf("Size of variable p : %d\n",sizeof(p));
   printf("Size of an expression : %d\n",sizeof(p+q));
   int a = (int)(p+q);
   printf("Size of explicitly converted expression : %d\n",sizeof(a));
   return 0;
}

Çıktı:

Size of variable p : 1                                                                                                                               
Size of an expression : 8                                                                                                                            
Size of explicitly converted expression : 4  

strlen() ve sizeof() arasındaki fark

strlen() ve sizeof() arasındaki önemli farklar şunlardır:

strlen() ve sizeof() arasındaki fark

Strlen() Boyutu()
Strlen(), string.h olarak bilinen bir başlık dosyasında tanımlanan, önceden tanımlanmış bir işlevdir. Sizeof(), bir öğenin kapladığı bellek miktarını hesaplayan tekli bir operatör veya derleme zamanı ifadesidir. değişken.
Bu yöntem, bir dize veya karakter dizisinin uzunluğunu bulmak için kullanılır. Bu yöntem, bayt cinsinden (ayrılan) verinin gerçek boyutunu bulmak için kullanılır.
Bir dizedeki boş değerleri ortadan kaldırarak karakter sayısını sayar. Dize uzunluğunu değil (boş değerler dahil) bir işlenenin boyutunu döndürür.
Çalışma zamanında bellek ayırır ve değişkenin boş değerini arar. Sizeof() değişken değerini umursamaz.
Strlen() işlevi yalnızca karakter dizeleriyle çalışır Sizeof() işlevi, bayt cinsinden ayrılan bellek miktarını döndürür.
strlen() işlevinin dönüş değeri long int'tir. sizeof() işlevindeki dönüş değeri unsigned int'tir.
strlen()'ın yalnızca bir sözdizimi vardır: int strlen(const char *str); sizeof()'un üç sözdizimi vardır: 1) sizeof(type), 2) sizeof(değişken-adı) ve 3) sizeof(ifade):