Penanda akhir null
Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 13 dari 63.
Kamu sudah mempelajari bahwa string dalam C adalah array karakter, tetapi ada detail penting yang membuatnya berfungsi dengan benar: setiap string C harus diakhiri dengan karakter khusus yang disebut terminator null, ditulis sebagai \0.
Terminator null adalah karakter dengan nilai ASCII nol yang menandai akhir string. Tanpanya, fungsi seperti printf tidak akan tahu di mana string-mu berakhir dan akan terus membaca memori sampai secara acak menemukan byte nol, yang sering kali menghasilkan output yang tidak jelas.
char word[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
// \0 memberi tahu C: "The string ends here"Saat kamu menginisialisasi string dengan literal seperti "Hello", C otomatis menambahkan terminator null untukmu. Namun, saat kamu menyusun string karakter demi karakter secara manual, kamu harus ingat untuk menambahkan \0 di akhir.
Terminator null inilah alasan kata 5 karakter seperti "Hello" membutuhkan array karakter dengan 6 elemen, satu ruang ekstra untuk \0. Memahami konsep ini penting karena konsep ini menjadi dasar cara semua fungsi string C menentukan awal dan akhir string.
Tantangan
MudahTulis program C yang menunjukkan cara membuat dan menggunakan string dengan inisialisasi karakter satu per satu secara manual serta terminasi null yang benar. Programmu harus:
- Mendeklarasikan array karakter bernama
namedengan tepat 5 elemen - Menginisialisasi array
namesecara manual, karakter demi karakter, hingga membentuk "John" dengan terminasi null yang benar:- Elemen pertama: 'J'
- Elemen kedua: 'o'
- Elemen ketiga: 'h'
- Elemen keempat: 'n'
- Elemen kelima:
'\0'(terminator null)
- Mendeklarasikan array karakter kedua bernama
citydengan tepat 7 elemen - Menginisialisasi array
citysecara manual, karakter demi karakter, hingga membentuk "Boston" dengan terminasi null yang benar:- Gunakan penetapan karakter satu per satu untuk 'B', 'o', 's', 't', 'o', 'n', dan
'\0'
- Gunakan penetapan karakter satu per satu untuk 'B', 'o', 's', 't', 'o', 'n', dan
- Mencetak kedua string menggunakan
printfdengan penentu format%s - Menunjukkan apa yang terjadi tanpa terminasi null dengan membuat array karakter ketiga bernama
testdengan 4 elemen - Menginisialisasi
testhanya dengan karakter 'A', 'B', 'C', 'D' (tanpa terminator null) - Mencetak array
testmenggunakan%suntuk menunjukkan output yang tidak dapat diprediksi
Output kamu harus menampilkan hasil dengan format berikut:
Name: John
City: Boston
Test without null terminator: ABCD[unpredictable characters]Tantangan ini menguji pemahamanmu tentang pembuatan string secara manual, pentingnya terminator null dalam string C, serta cara printf dengan %s bergantung pada penemuan terminator null untuk mengetahui di mana string berakhir.
Coba sendiri
#include <stdio.h>
int main() {
// TODO: Tulis kodemu di sini
// Deklarasikan dan inisialisasikan array karakter sesuai ketentuan
// Cetak hasilnya
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online