Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

strlen() vs. sizeof() dalam C: Memahami Perbedaan dan Penggunaan yang Benar

Apa Itu strlen()

Dalam C, strlen() mengembalikan jumlah karakter dalam string yang diakhiri null, tidak termasuk penutup '\0'. Ini menghitung karakter alfabet, angka, simbol, dan spasi.

Artikel ini menjelaskan peran strlen(), sizeof(), dan mengapa mereka berperilaku berbeda.

Apa Itu sizeof()

Operator sizeof menghasilkan ukuran, dalam byte, dari operandnya. Ini dievaluasi pada waktu kompilasi untuk tipe statis dan pada waktu runtime untuk array panjang variabel. Ini berlaku untuk semua tipe data C, termasuk primitif, pointer, struct, dan union. Hasilnya bertipe size_t, tipe integer tanpa tanda yang dijamin cukup besar untuk menampung ukuran objek terbesar.

Karena ukuran tipe seperti int atau double dapat bervariasi antara sistem 32-bit dan 64-bit, sizeof memastikan portabilitas.

Perbedaan Utama

Sintaks strlen()

size_t length = strlen(my_string);

Di sini, my_string adalah array karakter atau pointer ke string yang diakhiri null.

Contoh strlen()

#include <stdio.h> #include <string.h> int main() { char strng[] = "January"; printf("Panjang string yang diberikan adalah: %zu\n", strlen(strng)); return 0; }

Output:

Panjang string yang diberikan adalah: 7

Sintaks sizeof()

1) sizeof(type)

sizeof(type) menghasilkan ukuran dari tipe yang ditentukan.

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

Output:

8

2) sizeof(variable)

Berikan nama variabel untuk mendapatkan jejak memori-nya.

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

Output:

sizeof(char) = 1

3) sizeof(expression)

Evaluasi ukuran tipe ekspresi tanpa menghitung nilainya.

#include <stdio.h> int main() { char p = 'S'; double q = 4.65; printf("Ukuran variabel p : %zu\n", sizeof(p)); printf("Ukuran ekspresi : %zu\n", sizeof(p+q)); int a = (int)(p+q); printf("Ukuran ekspresi yang dikonversi secara eksplisit : %zu\n", sizeof(a)); return 0; }

Output:

Ukuran variabel p : 1 Ukuran ekspresi : 8 Ukuran ekspresi yang dikonversi secara eksplisit : 4

Perbandingan Visual

strlen() vs. sizeof() dalam C: Memahami Perbedaan dan Penggunaan yang Benar

Berikut adalah ringkasan berdampingan dari kedua konstruksi.

Fitur strlen() sizeof()
File header string.h Tidak diperlukan header (operator bawaan)
Tujuan Menghitung panjang string (tidak termasuk null) Menentukan ukuran memori dari tipe atau variabel
Tipe kembali size_t size_t
Waktu evaluasi Runtime (mungkin melintasi string) Waktu kompilasi (kecuali untuk VLA)
Dapat diterapkan pada Hanya array karakter atau pointer ke string yang diakhiri null Semua tipe data dan ekspresi

Kapan Menggunakan Mana

Menurut pedoman ini memastikan kode C yang efisien, portabel, dan mudah dipelihara.

Bahasa C

  1. Asbes vs. Fiberglass: Perbedaan Kunci, Penggunaan, dan Pertimbangan Keamanan
  2. Struktur vs. Union dalam C: Panduan Praktis
  3. C# vs C++: Perbandingan Jelas Fitur, Performa, dan Kasus Penggunaan
  4. C vs. C++: Perbedaan Kunci & Kapan Memilih Keduanya
  5. C vs Java: Perbandingan Komprehensif Fitur, Sejarah, dan Aplikasi
  6. Python vs JavaScript: Perbedaan Utama, Fitur, dan Kapan Memilih Satu
  7. Python vs Ruby: Perbandingan Komprehensif Fitur, Keuntungan, dan Kasus Penggunaan
  8. Memahami Motor DC vs AC: Perbedaan Utama dan Panduan Pembelian
  9. Penglogaman vs Pengatoman: Perbedaan Utama Dijelaskan
  10. Mesin 2‑Colokan vs 4‑Colokan: Perbedaan Kunci Dijelaskan