Perbezaan antara strlen () dan sizeof () untuk rentetan dalam C

Isi kandungan:

Anonim

Apa itu strlen ()

strlen () adalah fungsi untuk mencari panjang tali. Ia menghitung jumlah watak yang disajikan dalam rentetan, menghilangkan watak kosong. Jumlah watak dalam rentetan merangkumi, abjad, watak khas, dan nombor, dengan ruang kosong.

Dalam perbezaan antara strlen () dan sizeof () untuk tali dalam tutorial C, anda akan belajar:

  • Apa itu strlen ()
  • Apakah ukuran dari ()
  • Sintaks strlen ()
  • Sintaks ukuranof ()
  • Perbezaan antara strlen () dan sizeof ()

Apakah ukuran dari ()

The sizeof () adalah fungsi yang digunakan untuk mengira ukuran operandinya. Ia mengembalikan ukuran pemboleh ubah tertentu. Fungsi ini dapat diterapkan pada semua jenis data, yang berisi jenis primitif seperti bilangan bulat dan jenis penunjuk, jenis titik terapung, struktur, atau penyatuan. Keluaran program yang mengandungi sizeof () mungkin berbeza pada sistem 32-bit dan sistem 64-bit.

PERBEZAAN UTAMA:

  • Kaedah strlen digunakan untuk mencari panjang array sedangkan kaedah sizeof () digunakan untuk mencari ukuran data yang sebenarnya.
  • Strlen () mengira bilangan watak dalam rentetan sementara sizeof () mengembalikan ukuran operan.
  • Strlen () mencari nilai pemboleh ubah nol tetapi sizeof () tidak mementingkan nilai pemboleh ubah.
  • Nilai pulangan dalam strlen () panjang int di sisi lain nilai pulangan dalam ukuranof () adalah int tidak ditandatangani

Sintaks strlen ()

strcount = strlen(my_string);

Di sini, my_string adalah pemboleh ubah array watak.

Contoh strlen ()

Dalam program C di bawah ini, kami telah menyatakan variabel rentetan dari jenis char. Pemboleh ubah strng dilalui sebagai argumen fungsi strlen () untuk mencari panjang tali.

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

Pengeluaran:

Length of given string is: 7

Sintaks ukuranof ()

Sintaks 1)

sizeof (type): Jenis = jenis yang dirujuk

Contoh sizeof (jenis):

Dalam kod di bawah, & taip memberikan alamat pemboleh ubah (double x). Ia ditambah dengan 1 yang memberikan alamat di mana anda boleh menyimpan pemboleh ubah jenis x seterusnya.

Menaip x menjadi char * dan mengambil perbezaannya akan membolehkan anda mengetahui jumlah pemboleh ubah jenis char yang tersimpan dalam memori. Kami telah menggunakan getchar () untuk membaca watak.

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

pengeluaran:

8

Sintaks 2)

sizeof (variabel-name): Variable-name = nama pemboleh ubah yang anda ingin tentukan ukurannya.

Dalam program C di bawah ini, kami mencetak jenis data char ukuran. Pernyataan Printf mengandungi fungsi sizeof dengan argumen char.

Contoh sizeof (nama berubah-ubah):

#includeint main(){printf("sizeof(char) = %d\n\n", sizeof(char));return 0;}

Pengeluaran:

sizeof(char) = 1

Sintaks 3)

sizeof (ekspresi): Ungkapan = Ekspresi yang harus anda buat penilaian.

Contoh sizeof (ungkapan):

Dalam program di bawah ini, kami mula-mula mengira dan mencetak ukuran pemboleh ubah. Selepas ini, kami menilai ekspresi, menyimpannya dalam pemboleh ubah a, dan memaparkan hasilnya dalam pernyataan printf.

#includeint 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;}

Pengeluaran:

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

Perbezaan antara strlen () dan sizeof ()

Berikut adalah perbezaan penting antara strlen () dan sizeof ():

Strlen () Saiz()
Strlen () adalah fungsi yang telah ditentukan, yang didefinisikan dalam file header yang dikenali sebagai string.h. Sizeof () adalah operator unary atau ungkapan masa kompilasi yang mengira jumlah memori yang ditempati oleh pemboleh ubah.
Kaedah ini digunakan untuk mencari panjang rentetan rentetan atau watak. Kaedah ini digunakan untuk mencari ukuran sebenar data (diperuntukkan) dalam bait.
Ia mengira bilangan watak dalam rentetan yang menghilangkan nilai nol. Ia mengembalikan ukuran operan, bukan panjang rentetan (termasuk nilai nol).
Ia memperuntukkan memori pada waktu runtime dan mencari nilai pemboleh ubah nol. Sizeof () tidak mementingkan nilai pemboleh ubah.
Fungsi Strlen () hanya berfungsi dengan rentetan watak Fungsi Sizeof () mengembalikan jumlah memori yang diperuntukkan dalam bait.
Nilai pulangan dalam strlen () adalah int panjang. Nilai pulangan dalam ukuranof () tidak ditandatangani int.
Terdapat hanya satu sintaks strlen () iaitu int strlen (const char * str); Terdapat tiga sintaks sizeof () 1) sizeof (type), 2) sizeof (pemboleh ubah-nama), dan 3) sizeof (ekspresi):