Perbedaan antara strlen() dan sizeof() untuk string di C
Apa itu strlen()
strlen() adalah fungsi untuk mencari panjang suatu string. Ini menghitung total karakter yang disajikan dalam sebuah string, menghilangkan karakter nol. Jumlah total karakter dalam string meliputi huruf, karakter khusus, dan angka, dengan spasi kosong.
Apa itu ukuran()
sizeof() adalah fungsi yang digunakan untuk menghitung ukuran operannya. Ini mengembalikan ukuran variabel tertentu. Fungsi ini dapat diterapkan ke tipe data apa pun, yang berisi tipe primitif seperti integer dan jenis penunjuk, tipe floating-point, struktur, atau gabungan. Output program yang berisi sizeof() mungkin berbeda pada sistem 32-bit dan sistem 64-bit.
PERBEDAAN UTAMA
- Metode Strlen digunakan untuk mencari panjang array sedangkan metode sizeof() digunakan untuk mencari ukuran data sebenarnya.
- Strlen() menghitung jumlah karakter dalam string sementara sizeof() mengembalikan ukuran operan.
- Strlen() mencari nilai nol dari variabel tetapi sizeof() tidak peduli dengan nilai variabel.
- Nilai pengembalian dalam strlen() adalah int panjang, sebaliknya nilai pengembalian dalam sizeof() adalah int yang tidak ditandatangani.
Sintaks strlen()
strcount = strlen(my_string);
Di sini, my_string adalah variabel array karakter.
Contoh strlen()
Dalam program C di bawah ini, kami telah mendeklarasikan variabel string bertipe char. Variabel strng diteruskan sebagai argumen fungsi strlen() untuk mencari panjangnya string.
#include<stdio.h> #include<string.h> int main() { char strng[] = "January"; printf("Length of given string is: %lu\n", strlen(strng)); }
Keluaran:
Length of given string is: 7
Sintaks ukuran()
Sintaks 1)
ukuran(jenis): Tipe= tipe yang direferensikan
Contoh sizeof(tipe):
Dalam kode di bawah ini, &type memberikan alamat variabel (double x). Nilai tersebut ditambah dengan 1 yang memberikan alamat tempat Anda dapat menyimpan variabel bertipe x berikutnya.
Mengetik x ke char* dan mengambil selisihnya akan memungkinkan Anda mengetahui jumlah total variabel bertipe char yang disimpan di memori. Kami telah menggunakan getchar() untuk membaca karakter.
#include<stdio.h> #define my_sizeof(type) (char *)(&type+1)-(char*)(&type) int main() { double x; printf("%ld", my_sizeof(x)); getchar(); return 0; }
keluaran:
8
Sintaks 2)
sizeof(nama-variabel): Nama-variabel= nama variabel yang ingin Anda tentukan ukurannya.
Dalam program C di bawah ini, kami mencetak tipe data size char. Pernyataan printf berisi fungsi sizeof dengan argumen char.
Contoh sizeof (nama variabel):
#include<stdio.h> int main() { printf("sizeof(char) = %d\n\n", sizeof(char)); return 0; }
Keluaran:
sizeof(char) = 1
Sintaks 3)
ukuran(ekspresi): Ekspresi= Ekspresi yang harus Anda evaluasi.
Contoh sizeof (ekspresi):
Pada program di bawah ini, pertama-tama kita menghitung dan mencetak ukuran variabel. Setelah ini, kita mengevaluasi ekspresi, menyimpannya dalam variabel a, dan menampilkan hasilnya dalam pernyataan printf.
#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; }
Keluaran:
Size of variable p : 1 Size of an expression : 8 Size of explicitly converted expression : 4
Perbedaan antara strlen() dan sizeof()
Berikut perbedaan penting antara strlen() dan sizeof():
Strlen() | Ukuran dari() |
---|---|
Strlen() adalah fungsi yang telah ditentukan sebelumnya, yang didefinisikan dalam file header yang dikenal sebagai string.h. | Sizeof() adalah operator unary atau ekspresi waktu kompilasi yang menghitung jumlah memori yang ditempati oleh a variabel. |
Metode ini digunakan untuk mencari panjang array string atau karakter. | Metode ini digunakan untuk mencari ukuran data sebenarnya (dialokasikan) dalam byte. |
Ini menghitung jumlah karakter dalam string yang menghilangkan nilai null. | Ia mengembalikan ukuran operan, bukan panjang string (termasuk nilai null). |
Ini mengalokasikan memori pada saat runtime dan mencari nilai nol dari variabel. | Sizeof() tidak peduli dengan nilai variabel. |
Fungsi Strlen() hanya berfungsi dengan string karakter | Fungsi Sizeof() mengembalikan jumlah memori yang dialokasikan dalam byte. |
Nilai kembalian dalam strlen() adalah int panjang. | Nilai kembalian dalam sizeof() adalah unsigned int. |
Hanya ada satu sintaks strlen() yaitu int strlen(const char *str); | Ada tiga sintaks sizeof() 1) sizeof(tipe), 2) sizeof(nama-variabel), dan 3) sizeof(ekspresi): |